it leader
article thumbnail
#4 - 슈팅 게임 만들기 강좌 - 준비편
게임만들기 강좌 2017. 11. 10. 17:54

안녕하세요 pixui 입니다. 그동안 너무 강좌를 오래 쉬었네요;; 뭐 개인적인 사정이 있어서 강좌를 만들 시간이 없었습니다. 다시 각잡고 게임 만들기 강좌를 해볼까 합니다. 이번에 할 강좌는 슈팅 게임입니다. 슈팅 게임 어렸을 적에 오락실에서 많이 하셨던 경험이 있으실 것입니다. 슈팅도 횡스크롤과 종스크롤 여러가지 방식이 존재하지요 저희가 만들어볼 게임은 1945 같은 종스크롤 게임이 입니다. 아 가장 비슷한 게임으로 드래곤 플라이트가 되겠네요 1945와는 연출과 그래픽의 정교함, 난이도, 총알의 궤적등 많은 부분이 간소화 되었지만,슈팅게임의 요소는 다 갖춘 드래곤플리아트, 개발 난이도는 무시할 수 없다. 슈팅게임에서 구현해야할 기능 리스트는 다음과 같습니다. 1. 유저 비행체 움직임, 발사체 발사2...

article thumbnail
Unity 버튼 normal color 스크립트 변경
코딩공부/Unity3D 2017. 2. 8. 15:43

버튼의 컬러만을 가지고 상태를 표시하고 싶을 때, 방법이 없다. status 값을 가지는 것은 버튼의 Transition이 sprite Swap 일 때 가능한데.. 그렇다면 각 상태별 sprite 를 다 넣어주어야 하므로, 디자이너가 없는 경우에는 상당이 불편하다. highlighted color, pressed color, disabled color는 마우스의 입력 상태에 따라 자동 적용되므로, 색깔을 바꾸어 봤자, 의미가 없다. 따라서 normal color를 임의로 사용자가 원하는 상태의 컬러로 변경해서 사용하는 방법이 유일한데.. normal 상태의 버튼 컬러를 변경하기 위해서는 ColorBlock 을 참조하여 대입 시키는 방법이 필수 코드는 다음과 같다. Button tmpButton = tmp..

article thumbnail
Unity3D Inputfield 대문자, 소문자 입력만 받기
코딩공부/Unity3D 2017. 1. 11. 17:00

Unity에서 Pin 코드나, 쿠폰 같은 것을 입력하는 Inputfield를 만들 때, 대소문자 구분 때문에 애를 먹는 경우가 있다. 스크립트 없이는 현재 UGUI에서는 해결 방법은 없다. ( NGUI에서는 모르겠지만. ) InputField 내의 text로의 접근은 되나.. 글자를 입력할 때 InputField OnChangeEvent가 발생 되면서, 강제로 소문자로 바꿔주는 로직이 발생하는 것 같다. 입력 받은 값을 코드상에서 강제로 대문자, 혹은 소문자로 바꿔서 비교하고자 하는 값과 비교하는 방법으로 처리하다가.. 아무래도 찝찝해서 Unity Answer를 뒤져보니 바로 발견! ㅠㅠ 다음의 스크립트를 Inputfield에 추가해주면 문제는 깔끔하게 해결 된다. using System.Collecti..

article thumbnail
[Unity3D] Invoke 사용법
코딩공부/Unity3D 2016. 4. 25. 10:44

Invoke(methodName:string, time:float)- methodName 메소드를 time 초 후 호출합니다. InvokeRepeating(methodName:string, time:float, repeatRate:float)- methodName 메소드를 time 초 후 호출합니다. 첫 호출 후 repeatRate 초 마다 반복 호출합니다. CancelInvoke()- 이 스크립트에 있는 모든 Invoke 를 취소합니다. CancelInvoke(methodName:string) - 이 스크립트에 있는 methodName 을 호출하는 모든 Invoke

article thumbnail
[ Unity3D] 충돌체크관련 메쏘드 정리 ( OnCollision , OnTrigger )
코딩공부/Unity3D 2016. 3. 16. 01:00

Unity3d 에서 충돌 체크 할 때 사용되는 메쏘드에 대한 정리 충돌체크를 할 때 필요한 것은 두 오브젝트 모두 Collide를 Component를 가지고 있어야 한다. 그리고 둘중에 한 오브젝트는 RigidBody Component를 포함하여야 한다. Collision , Trigger 의 차이점 Collision- 충돌하였을 때 RigidBody를 포함한 오브젝트에 변화가 있다.- 매개변수 타입이 Collision Tirgger- 충돌하였을 때 어떤 변화도 없다.- 매개변수 타입이 Collider- Collider 옵션에 isTrigger 체크하여야 한다. Collision 메쏘드 OnCollisionEnter( Collision col) - Collision에 들어 갔을 때OnCollisionSt..

article thumbnail
[Unity3D] List 사용법 및 매쏘드 정리
코딩공부/Unity3D 2016. 2. 27. 14:20

List 선언 List 변수명 = new List(); List num = new List(); 배열 추가 Add List num = new List(); num.Add(2); 배열 중간에 집어 넣기 Insert ex ) list.Insert(인덱스, 요소 ); class Program{ static void Main() { List dogs = new List(); // Example list. dogs.Add("spaniel"); // Contains: spaniel. dogs.Add("beagle"); // Contains: spaniel, beagle. dogs.Insert(1, "dalmatian"); // Spaniel, dalmatian, beagle. foreach (string dog i..

article thumbnail
Unity3D 기초 책 추천 "반다이 남코 현역 디렉터가 알려주는 유니티 게임 제작 입문"
개발 서적 리뷰 2016. 2. 22. 04:00

유니티3D 로 인디게임을 개발하는 개발자분들이 많으시리라 생각됩니다.인디개발자 분들은 물론, 최근에는 게임 개발자를 지원하는 지망생들, 게임을 만들기전에 자신의 기획이나 디자인을테스트 해보고 싶은 기획자나 디자이너들도 유니티에 대해서 공부하고 싶어 하시는 분들이 많은데어떤 책으로 공부해야 할지 막막하실 때가 많은 것 같습니다. 저 또한 서점에 가면 늘비하게 늘어져 있는 유니티 책들 중에서 내 수준에 맞고, 내 개발에 많은 도움을 줄수 있는책을 고르기위해서 많은 시간이 걸렸는 데요. 오늘 제가 추천할 책은 바로 '반다이 남코 현역 디렉터가 알려주는 유니티 게임제작 입문' 이라는 책입니다. 저도 유니티로 게임 개발을 하고 있습니다만, 유니티 책들이 하나같이 툴설명에 그치고 있는 책들이 많습니다.사실 툴이라는..

article thumbnail
[Unity3D] 안드로이드 기기에서 back버튼 사용하여 앱 종료하기
코딩공부/Unity3D 2016. 1. 26. 17:04

unity에서 백버튼으로 앱을 종료시키려면 간단한 방법과 좀 복잡한 방법이 있다. 간단한 방법은 종료버튼 입력을 받았을 시에 앱을 종료시키는 방법과 복잡한 방법은 안드로이드 Native에 접근하여 앱을 종료시키는 것이다. 복잡한 방법은 현재 필자가 시험 중에 있으므로 테스트가 무리없이 잘되면 올리도록 하겠다. 간단한 방법은 다음의 코드를 추가 하면 된다. Update(){ //if UNITY_ANDROID if(Input.getKeyDown(KeyCode.Escape)) { Application.Quit(); } //endif } 혹시 iOS와 안드로이드 동시에 빌드할 경우를 대비하여 전처리기를 설정해 줍니다. ( preprocessor ) 간단히 앱을 종료하는 방법을 알아보았습니다. 복잡하게 하는 방법..

[Unity3D] 타이머 사용 방법 ( stopwatch / Time.deltaTime )
코딩공부/Unity3D 2016. 1. 23. 12:01

unity에서 시간 측정하는 방법 1. Stopwatch를 이용한 측정 using System.diagnotics; using debug = UnityEngine.Debug; Stopwatch sw = new Stopwatch(); sw.Start(); sw.Stop(); sw.Reset(); 메서드를 이용하여 시간을 측정할 수 있다. 내부적으로 타이머가 돌아가기 때문에 확인을 하려면 로그를 찍어봐야 된다. Debug.Log(" sw : "+ sw.ElapsedMilliseconds.ToString() +"ms"); 이렇게 로그를 넣어주면 몇 ms가 걸렸는지 확인 할 수 있다. 단!!!!! diagnotics를 사용하기 때문에 UnityEngine.debug와 System.diagnotics.debug ..

[Unity3D] 최적화 방법 자료 [ 펌 ]
코딩공부/Unity3D 2016. 1. 19. 15:31

슬라이스 쉐어에 올라온 자료 입니다. 유니티 프로젝트 최적화 방법 [데브루키/141206 박민근] 유니티 최적화 테크닉 총정리 from MinGeun Park 좋은 꿀팁이 많아서 전체적으로 다 보면 좋겠지만 시간이 없는 사람을 위한 요약 병목 파악cpu너무 많은 DP call복잡한 스크립트나 물리연산Vertex Processing너무 많은 버텍스들버텍스당 너무 많은 연산( Vertex shader )Fregment Processing너무 많은 픽셀, 오버 드로우 ( OverDraw)프래그먼트당 너무 많은 연산 ( 프래그먼트 셰이더/ 픽셀 셰이더 ) Band Width크고, 압축되지 않은 텍스처고해상도 프레임 버퍼 1. 스크립트 최적화- 오브젝트 풀링 : 오브젝트를 동적으로 생성 / 해제 하는 것은 부하가..

[Unity3D] 사운드 관련 매쏘드정리
코딩공부/Unity3D 2016. 1. 12. 16:50

사운드를 재생하기 위해서는 두가지가 필요하다. public AudioSource audio;public AudioClip jumpSound; 두가지 오브젝트가 필요하다. 처음 접하는 사람은 어려울수 있지만.. 이렇게 생각하면 편하다. 사운드를 재생하기 위한 오디오 플레이어와 CD가 필요한 것이다. AudioSource = 오디오플레이어AudioClip = CD 또는 파일 위와 같이 전역 변수로 선언 해준다음 this.audio = this.gameObject.AddComponent(); AudioSource 컴포넌트를 추가해 준다. 그다음 부터 this.audio는 AudioSource의 기능을 사용할 수 있게 된다. 오디오에 파일 연결this.audio.clip = this.jumpSound; 사운드의..

[Unity3D] PlayerPrefs를 이용한 데이터 저장, 불러오기
코딩공부/Unity3D 2015. 12. 24. 18:17

PlayerPrefs를 이용해여 데이터를 로컬에 저장하는 방법 저장 PlayerPrefs.Set자료형(“문자열 키값”, 저장하고자 하는 값 ); PlayerPrefs.SetInt(string key, int value); PlayerPrefs.SetFloat(string key, float value); PlayerPrefs.SetString(string key, string value); //ex) //최근 점수라는 키값으로 저장을 하고자 할 떄 (tmpScore); int score = 10; PlayerPrefs.SetInt(“tmpScore”, score); 2. 불러오기 PlayerPref.Get자료형(“저장했던 키값”, 초기화값); PlayerPref.GetInt(string key, int ..

[Unity3D] c# 변수형변환 int, float, string
코딩공부/Unity3D 2015. 12. 19. 16:20

c# 변수의 형변환 ( Type Convertion) 실수, 정수의 문자변환int a = 3;string str = a.ToString(); flaot b = 3.0f;string str = b.ToString(); 정수 -> 실수 변환int -> float int a = 3; float b = (float)a; 실수 -> 정수 변환float a = 3.0f;int b = (int)a; double c = 123.45; int d = (int)c; 문자열 -> 실수, 정수 변환string e = "123;string f = "123.456"; int g = int.Parse(e);float h = float.Parse(f); 또는 int g = Convert.ToInt32(e);float h = Conv..

[Unity3D] Attributes 설명 모음
코딩공부/Unity3D 2015. 12. 12. 13:43

[Unity3D] Attributes 설명 모음ATTRIBUTES알고 있으면 생산, 작업 효율성을 매우 높일 수 있는 attribute들을 unity에서 제공한다. 1) AddComponentMenu 기본적으로 스크립트는 유니티의 Component->Scripts 메뉴에 자동추가된다. 자동추가말고 아무데나 맘대로 넣고 싶으면 AddComponentMenu를 사용한다. [AddComponentMenu("Transform/Follow Transform")] public class FollowTransform : MonoBehaviour { } 2) ContextMenu 스크립트를 우클릭시 뜨는 context menu에 커맨드를 추가할 수 있다. public class ContextTesting : MonoB..

펌] Unity 데이터 패스
코딩공부/Unity3D 2015. 12. 10. 19:16

각 플랫폼별로 Application 클래스의 프로퍼티들이 지정하는 경로와 엑세스에 대해 정리해보았습니다.테스트한 기기에 따라 결과가 다를 수 있는데, 미진한 부분들은 댓글 남겨주시면 감사하겠습니다. [윈도우 에디터]Application.persistentDataPath : 사용자디렉토리/AppData/LocalLow/회사이름/프로덕트이름파일 읽기 쓰기 가능Application.dataPath : 프로젝트디렉토리/AssetsApplication.streamingAssetsPath : 프로젝트디렉토리/Assets/StreamingAssets파일 읽기 쓰기 가능 [윈도우 응용프로그램]Application.persistentDataPath : 사용자디렉토리/AppData/LocalLow/회사이름/프로덕트이름파일..

[Unity3d] 에러메세지 ( 정리 중 )
코딩공부/Unity3D 2015. 12. 10. 19:03

NullReferenceException : Object Reference not set to an Instance of an - 아직 생성되지 않았거나, 메모리 할당이 안된 객체에 접근할 떄 생기는 오류

[Unity3D]자주 사용하는 메쏘드 ( 정리중 )
코딩공부/Unity3D 2015. 12. 3. 21:22

씬 전환 씬 전환 전 준비할 사항다수의 씬이 생성되어 있어야 함Build Settings -> scenes in Build 에 씬들을 드래그 앤 드랍하여야 함Application.LoadLevel("씬명"); 현재 씬의 이름 값 가져 오기 Application.loadLevelName; GUI 만들기public Texture2D icon = null; //전역변수 선언 GUI.DrawTexture(new Rect(x좌표, y좌표, x Width, y Width), icon); GUI 텍스트 필드 출력 GUI.Label( new Rect( x좌표, y좌표, x Width, y Width), "출력할 내용" ); 사운드 출력사운드 출력 전에 필요한 것들코드로 보면 복잡하지만 다음과 같은 순서이다 오디오 플레..