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 about."
Scene 내에서 GameObject 가 이동 시, 이동한 흔적(Trail)을 남기고자 할 때 사용되는 것이죠.
그럼, Sword 효과를 내기 위해 Trail Renderer 를 어떻게 사용하면 될까요?
방법은 아주 간단합니다.
1. GameObject 를 두고, Trail Renderer 컴포넌트를 추가
- Hierarchy 에 Empty GameObject 를 추가. (TrailObject 라고 이름을 변경 했습니다.)
- 추가 된 GameObject 를 선택하고 Trail Renderer 컴포넌트 추가 (Component - Effects - Trail Renderer)
- Trail Renderer 컴포넌트의 속성 설정.
저는 간단히 Material 을 Unity에서 제공하는 Fire Smoke 로 설정하고, Start Width, End Width 만 살짝 바꿔봤습니다. (입맛에 맞게 설정하시면 됩니다.)
2. Input 클래스를 사용하여 Move 발생 시 마다 GameObject 의 Transform 을 변경
- Scene 에서 발생하는 이벤트를 처리하기 위한 Script 를 추가. (mainSceneScript.cs)
+ Trail Renderer 컴포넌트가 추가 된 GameObject 를 할당 할 변수 추가
+ Inspector 에서 변수 할당
(MainCamera 도 변수 선언을 해서 할당 했습니다.)
- Script 에 터치 이벤트 처리하여 Move 발생 시에 GameObject 의 Transform 변경.
MainCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 1));
결과 화면
요약.
1. GameObject 를 두고, Trail Renderer 컴포넌트를 추가.
2. Input 클래스를 사용하여 Move 발생 시 마다 GameObject 의 Transform 을 변경.
'unity3d' 카테고리의 다른 글
Amazon In-App Purchasing 모듈 붙이기 (0) | 2013.07.22 |
---|---|
평면과 다른 한 물체 사이의 거리 구하기 (4) | 2012.08.22 |
꼴 보기 싫은 Missing Prefab 복구하기~ (2) | 2012.07.26 |
Physics.Raycast 활용하여 3D 공간에서 충돌 체크하기 (0) | 2012.07.03 |
Unity3D에서 C# Script로 FSM (Finite State Machine) 구현 (3) | 2012.06.20 |
CustomUnityPlayerActivity 설정하기 (Unity3D Android Plugin 만들기) (0) | 2012.06.05 |
Application DRM (ARM) 플러그인 만들기 (0) | 2012.05.30 |