본문 바로가기

게임 프로그래밍/unity

유니티 네트워크 프로그래밍 Unity 내부에서 C#을 통해 통신 프로그램 개발을 하려고 하는데, 가능한 게임에 영향을 주지않고, 통신비용(패킷 량)을 감안한 네트워크 프로그램을 하고자 한다. 관련 문의답변을 보게되면 아래의 몇 가지 통신방식을 제시하고 있다.1. Blocking I/O Model2. Multi-threaded Blocking I/O Model 3. Non-blocking poll/epoll Model 4. Non-blocking event Model 5. Asynchronous Model 결국, 유니티 내에서 Blocking Model 을 선택하지 않고 구현해야 하며, 별도의 쓰레드로 동기화 객체를 이용하여 전송 체계를 만들어야 할 것 같으며, 결국 이벤트 발생 시에 해당 ConcurrentQueue 에 저장해 두.. 더보기
유니티에 대한 오해와 진실 여태까지 유니티 개발환경에 대해 아주 큰 오해를 한 가지 하고 있었는데, 안드로이드 앱이 빌드되는 과정이 나는 자바로 변환되어 라이브러리 처럼 사용된다는 말도 안되는 생각을 갖고 있었다. 아무튼, 유니티는 리눅스 커널 위에 MONO 라는 닷넷 VM을 통해 기존의 C# 및 Unity 코드를 기동할 수 있다. Unity 역시 C#으로 구현된 스크립트를 Assembly 코드로 컴파일해 두고, MONO의 JIT Runtime 위에서 기동이 가능하다. 결국 한 마디로 C#(Managed) 및 기존 C/C++ 코드를 안드로이드 폰에서 사용할 수도 있다는 말이다. 아무튼 구글링 내역과 간략한 소개다.The Mono RuntimeRuntime Doc.Mono EmbeddingXamarine Architecture JI.. 더보기
3D 러닝게임 리뷰 1. 나루토 러닝 게임 - https://youtu.be/q0KkD4sA3FY* Swipe 를 적절히 사용하면 터치(1개)의 기능 대신에 상하좌우 4가지 기능을 쓸 수 있음2. 런 어웨이 - https://youtu.be/pVgH5Eich1U* 시간 제약과 아이템 먹는 것은 기본이고, 초기 인트로에서 설명을 보여줌* 길찾기, 적이 뒤쫓아 오는 것, 장애물 피하기 등3. 템플런 - https://youtu.be/5ujcSgaCExE* 길찾기, 속도감, 아이템 구매가능4. 보슨 엑스 - https://youtu.be/VadxVumUquE* 단순한 판 이동이지만, 독특한 게임성에 끌림* 버튼, 버튼 누르고 있기, 좌우 이동, 좌우 동시 버튼 등* 마지막 달리기 결과 통계 보여주기5. 닌자 런 - https:/.. 더보기
유니티 튜토리얼 1 현재 실행 중인 게임 오브젝트에 포함된 컴포넌트에 액세스 할 때 : GetComponent 메소드MyScript ms = GetComponent() 형태로 가져올 때에 해당 게임객체에 해당 컴포넌트가 존재하는 경우 스크립트의 순서와 관계없이 액세스가 가능한데, 이는 컴포넌트의 생성은 게임객체 생성 시에 일괄적으로 수행되고 난 다음에 안전하게 수행되는 듯 보인다. 물론 해당 컴포넌트가 객체에 포함되어 있지 않으면 널포인터예외가 발생함 게임 내의 어떠한 오브젝트를 찾을 때 : Tag, Layer, GetGameObject, .gameObject 활용GameObject.find("name") 은 아주 편하겠지만, 너무많은 게임객체 상에서 성능저하가 예상되므로, 항상 Tag를 사용하는 습관을 들이자. Layer.. 더보기
선녀와 나무꾼 "선녀와 나무꾼" - 개발자 3명, 아트 디자이너 1명, 사운드 기획 1명, 총 48시간 by Unity 여태까지 발견된 버그나무꾼의 도끼를 계속 누르면 나무가 잘라지는 버그 여태까지 받은 피드백선녀 점프 타이밍 맞추기가 너무 어렵다선녀가 왜 하늘로 올라가는 지 모르겠다좌우로 움직일 수 있으면 좋겠다자리바꾸기 광역스킬 이런 것도 있으면 좋겠다도끼를 던지고 나무가 베어지면 좋겠다 개인적으로 더 구현하고 싶은 컨텐츠스테이지 종료 (실패) 시에 배경화면도 멈추어야 하는데 계속 진행되는 문제보스를 격파하고 났을 때에 효과가 전혀 없음보스 등장 시에 배경음악 혹은 효과음 변경똑같은 스테이지 반복이 아니라 배경이나 사운드 변경 및 스테이지 추가인트로 및 엔딩 추가나무, 돌, 나무 너무 똑같은 장애물만 나와서 지겨움 더보기
Unity를 통한 게임개발 시작 유니티를 통해 개발된 게임은 다양한 플랫폼에서 기동이 가능하며, 게다가 2013년 5월 22일 이후로는 모바일 라이센스의 경우도 무료로 풀렸다. 물론 년 매출이 10만 달러를 초과하는 경우가 아니라면 판매수익이 있는 상용제품도 만들 수 있다. 무료버전이 따로 있는 것이 아니라 Unty3d.com 사이트에서 다운로드 후 Activation 시에 Free 버전을 선택하면 된다. 말이 멀티플랫폼이지 사실상 콘솔/모바일/PC 게임은 조작성 면에서 완전히 다른 플랫폼이므로 리소스부터 컨트롤 등등 컨셉을 제외만 많은 부분이 다시 개발되어야 할 것처럼 보이며, 심지어 모바일 디바이스의 경우에도 패드에서부터 각 제조사 별로 해상도와 화면비율이 다르기 때문에 뭐 하나 쉬운게 없다. +ㅂ+ 기본 컴포넌트 활용Compone.. 더보기
Unity 와 Component Unity에서 Component란?GameObject에 필요한 다양한 기능을 미리 구현해둔 구현체로써 상속 혹은 조합을 통해서 해당 Component의 기능을 해당 GameObject에서 활용할 수가 있다. 그리고 GameObject는 이런 Component를 담는 Container로써 동작하고 모든 GameObject는 Transform Component를 가지게 된다. Unity Component의 종류?Animation : Sprite를 통한 애니메이션 효과Audio : 사운드, 배경음학 및 효과음 등Effect : 파티클 등의 효과Input : 이용자의 입력Navigation : 길찾기Network : 네트워크를 통해 다른 컴퓨터에 전달Position : 위치, 회전 및 Transform 변화Ph.. 더보기
Unity 5Rocks 연동 삽질 "StandaloneOSXIntel" 관련 오류기본 빌드 설정이 Standalone 인데 5Rocks는 지원하지 않는다는 의미Mobile (Android, iOS) 플랫폼으로 변경해서 빌드하면 됨"개발자 옵션" 열기"환경설정"의 "더보기" 탭에서 "디바이스 정보"에서 "빌드번호"를 7회 터치"Build & Debug" 연결 오류안드로이드 폰 기본 연결이 카메라(PTP)연결이므로 이를 미디어 기기(MTP) 연결으로 변경해야 디버깅이 가능함안드로이드 알림 연결 더보기