본문 바로가기

unity3d

(8)
Amazon In-App Purchasing 모듈 붙이기 아마존 모바일 앱을 등록하고, 인앱 구매 모듈을 붙이시려는 분들께 도움이 되고자 남겨봅니다. 티스토어 인앱모듈을 붙여보신 분이라면 이클립스 작업으로 플러그인을 만들어야 하는 게 아닌가 생각하실 수 있습니다만, 아마존 모바일 인앱모듈은 구현이 상당히 쉽습니다. (유니티용 패키지를 따로 제공하기 때문에 꼼꼼히 적재적소에 코딩하시는 일만 남거든요~) 그럼, 간단하게 Consumable 상품을 하나 추가해 테스트 하는 과정까지 살펴보도록 하겠습니다. 1. In-App 상품 등록 어플을 등록 후 In-App Items 탭을 눌러 인앱상품을 등록합니다. 인앱상품은 Consumable(일반 소비성 아이템-게임머니 등), Entitlement(영구 구매 등 권한부여 아이템), Subscription(구독 등 기간제 아..
평면과 다른 한 물체 사이의 거리 구하기 물체 사이의 거리를 구하는 간단한 방법을 설명하겠습니다. 우선, 힘겹게 "그림판"으로 완성 된 아래 이미지 부터 보시죠.(허접하다는게 반전) ① 두 물체 사이의 거리 구하는 방법은 아주 간단합니다. Unity 에서 Scene 내에 존재하는 모든 GameObject 들은 각각 transform 을 기본적으로 가지고 있기 때문에 두 transform 사이의 거리를 계산하면 됩니다. Transform 에는 world space 상에서의 transform 의 위치를 나타내는 Vector3형의 position 값이 존재합니다. 위 이미지 상에서 (0,0,0) , (4,5,0) 이 바로 이 값이죠. 그럼, 두 position 을 이용 해 어떻게 거리를 구할까요? 피타고라스의 정리를 통해 (4*4 + 5*5) 의 제..
꼴 보기 싫은 Missing Prefab 복구하기~ 이번 포스팅은 정말 간단한 내용이 되겠네요. Missing Prefab 복구!! Unity3D 로 프로젝트를 진행하면서, Prefab 을 많이 만들어서 사용하게 됩니다. (저만 그런 건 아니겠죠?) 제 경우에는 재사용성을 고려해서.. 혹은, 다른 Scene으로 복사하려는 목적으로.. 혹은 Package Import, Export 순으로 다른 프로젝트로 옮길때.. 등등 Prefab 을 만들었다가 다시 Project 뷰에서 Prefab 을 제거하는 경우가 생기더라고요. 헌데 이렇게 연결 된 Prefab 을 삭제하고 나면 Hierarchy 뷰에 있는 GameObject(Prefab 과 연결 되 있던) 가 Prefab 을 Missing 했다면서 빨간색으로 변하게 됩니다. ㅠ.ㅠ 신경 안쓰고 넘길 수도 있지만, ..
Physics.Raycast 활용하여 3D 공간에서 충돌 체크하기 Ray Cast 란, 3차원 공간에서 어느 한 점(시작점)에서 Ray 를 정해진 방향(direction vector)으로 쏴 Ray 와 충돌 되는 객체를 구하는 방법을 말합니다. Unity3D 에서는 Ray Cast 를 위한 몇가지 유용한 클래스와 struct, 메소드 등을 제공합니다. 샘플 구현에 필요한 몇가지를 우선 소개 하자면, Ray (struct) > Unity Script Reference 참고 Ray Cast를 위한 재료 중 가장 중요한 Ray 의 정보를 담습니다. origin : Ray 가 시작되는 지점을 설정하고, direction : Ray 가 시작 지점(origin)에서 쏘여지는 방향을 설정합니다. Physics.Raycast (Physics class, Raycast Method) ..
Trail Renderer 사용하여 Fruit Ninja의 Sword 효과 내기 Fruit Ninja 를 플레이 해 보시면, 손가락을 사용해 터치 디바이스에 드래그를 하면 칼날을 휘두른 것 같은 효과가 납니다. 물론, Fruit Ninja 뿐만 아니라 많은 스마트폰 디바이스용 어플에서 볼 수 있는 효과입니다. 이것을 어떻게 구현할까 싶어 알아보니, Trail Renderer 를 사용하면 쉽게 구현이 가능하더군요. (Sword 효과라고 명명 된 것은 아니고, 정확히 어떤 명칭을 붙여야 하는지 모르겠어서 그냥 Sword 효과라고 이름을 붙였습니다.) TrailRenderer 는 Unity3D Document 에서 이렇게 설명합니다. "The Trail Renderer is used to make trails behind objects in the scene as they move abo..
Unity3D에서 C# Script로 FSM (Finite State Machine) 구현 1. FSM 구현을 위해 Unity3D engine 이 제공하는 StartCoroutine 메서드 활용. Unity > Support > Script Reference > MonoBehaviour.StartCoroutine 참고 Unity3D engine 에서 제공하는 MonoBehaviour 객체의 StartCoroutine 메서드는 매 프레임 마다 지정 된 콜백함수를 실행합니다. Debug.Log 를 찍어서 확인 해 보시면, Update, StartCoroutine 에서 지정 된 콜백함수 순으로 실행이 됩니다. 이때 지정 된 콜백 함수가 IEnumerator 를 반환하는 형태이기 때문에 while 문과 yield 키워드를 통해 FSM 을 구현 할 수 있습니다. 2. State 정의 및 IEnumera..
CustomUnityPlayerActivity 설정하기 (Unity3D Android Plugin 만들기) Eclipse 안드로이드 프로젝트로 만든 Activity 를 Unity3D 에서 Main 으로 사용하기 위해서는 다음과 같은 작업을 필요로 합니다. 1. 새 프로젝트 생성 후 Activity 파일명 변경 - Eclipse 에서 File > New > Android Project 생성 - 생성 된 Activity.java 파일을 선택 후 Refactor > Rename (F2, Alt+Shite+R) CustomUnityPlayerActivity 로 변경 2. Unity3D 에서 제공하는 classes.jar 프로젝트에 추가 - 프로젝트 Properties 에서 Java Build Path 탭 선택 후 Add External JARs... 클릭, classes.jar 파일(Path : 유니티설치폴더\Edi..
Application DRM (ARM) 플러그인 만들기 참고) TStore - ARM V3.2 (2012.05.22) 1. Eclipse 새 프로젝트 생성 후 CustomUnityPlayerActivity 사용하도록 작업. 2. ARM Library (jar) 파일 및 libARMPlugin.so 파일 설치 - Android SDK r17 이상 ADT를 사용하는 경우 1) Eclipse 프로젝트에 "libs" 폴더를 생성하여 ARMPlugin.jar 파일 복사 2) "libs" 폴더 하위에 "armeabi" 폴더를 생성하여 libARMPlugin.so 파일 복사 3) "libs" 폴더 하위에 "armeabi-v7a" 폴더를 생성하여 libARMPlugin.so 파일 복사 - Android SDK r16 이하 ADT를 사용하는 경우 1) Eclipse 프로젝트..