이 글은 Unity Object 이동 및 회전과 애니메이션의 속도 조절하는 Tip을 설명합니다.
1. 우선 움직일 Object(돌고래)를 아래 링크로 다운을 받습니다.
다운 링크 : https://www.assetstore.unity3d.com/kr/#!/content/3547
그후 import를 하여 예제 프로젝트에 추가합니다.
정상적으로 import를 하였다면 Project Tab -> Favorites -> All Models에 돌고래가 보일 겁니다.
2. 돌고래를 이동 시키기 위한 Object를 추가하고, 그 안에 돌고래를 넣습니다.
3. 돌고래를 이동 및 회전 시키기 위한 자바스크립트 파일 생성
돌고래 이동은 transform.position의 인자인 x, y, z값을 가지고 제어 합니다.
돌고래 회전은 GameObject.Find("우리가 추가한 Object 명").transform.Rotate(Vector3(X, Y, Z) * speed * Time.deltaTime); X, Y, Z 값을 가지고 원하는 방향으로 회전 시킵니다.
// File Name : Move.js
function Start() {
}
var speed : float = 1;
var max : int = 0;
var rateValue : int = 80;
function Update () {
max = max + 1;
if (max < 200) {
transform.position.x += (0.24 / rateValue);
transform.position.y -= (0.17 / rateValue);
rateValue = 80;
} else if (max < 400) {
transform.position.x += (0.24 / rateValue);
transform.position.y -= (0.17 / rateValue);
rateValue = 60;
} else if (max < 500) {
transform.position.x += (0.24 / rateValue);
transform.position.y -= (0.17 / rateValue);
rateValue = 35;
} else if (max < 900) {
transform.position.x += (0.08 / rateValue);
transform.position.y -= (0.13 / rateValue);
GameObject.Find("Object").transform.Rotate(Vector3(10, -50, -10) * speed * Time.deltaTime);
rateValue = 20;
} else {
transform.position.x += (0.34 / rateValue);
transform.position.y -= (0.17 / rateValue);
}
if (max > 1500) { // 초기 상태로 Roll Back Source Code
GameObject.Find("Object").transform.position = new Vector3(-5.5, 2.5, -5);
GameObject.Find("Object").transform.localEulerAngles = new Vector3(330, 310, 0);
max = 0;
}
}
4. 위에서 만든 자바스크립트 파일을 Object의 Component에 Drag하여 추가 합니다.
- Object의 Position(x, y, z)를 설정하여 초기 시작 위치를 설정
- Object의 Rotation(x, y, z)를 설정하여 초기 시작 방향 설정
5. 이제 돌고래의 애니메이션 속도, 크기를 설정 합니다.
- "humpback_whale_model_baked_animation"의 'Scale'값으로 초기 시작할때 돌고래 크기를 설정 합니다.
저는 처음에 조금하게 보여야 하기에 0.1로 설정 하였습니다.
- 위 그림과 같이 'DolphinMove' 자바스크립트 파일로 애니메이션 속도 및 돌고래 크기를 조절 합니다.
현재 사용하고 있는 애니메이션을 Get하여 속도를 '7'로 설정 하였습니다.
'max'값이 1500이 되기 전까지 'scale'값을 계속 0.0006씩 상승 시켜서 점점 커지게 하였습니다.
// File Name : DolphinMove.js
#pragma strict
var anim: Animation;
function Start () {
for (var state : AnimationState in anim) {
state.speed = 7;
}
}
var max : int = 0;
function Update () {
max += 1;
if (max < 1500) {
transform.localScale.x += 0.0006;
transform.localScale.y += 0.0006;
transform.localScale.z += 0.0006;
}
if (max > 1500) {
transform.localScale.x = 0.1;
transform.localScale.y = 0.1;
transform.localScale.z = 0.1;
max = 0;
}
}
이상
'Unity' 카테고리의 다른 글
[Unity] Chromakey 동영상 투명하게 플레이 하는 Tip (192) | 2015.05.28 |
---|