Study/Unity

물체의 이동 및 회전

zeroplus1 2014. 11. 26. 21:52

유니티 에디터에서 물체의 회전은 X,Y,Z축의 값으로 지정하는데, 이러한 회전 관리 방식을 오일러 회전이라 한다. 하지만 엔진 내부에서 물체의 회전은 사원수(Quaternion)회전으로 관리된다.

이동에 사용하는 벡터는 덧셈을 통해 추가 이동을 설정하지만, 회전을 나타내는 사원수는 곱셈을 사용해 추가 회전을 설정하게 된다.


public class RocketMove : MonoBehaviour {

public float moveSpeed=10f;

public float rotateSpeed=90f;


void Update () {

float h = Input.GetAxis ("Horizontal");

float v = Input.GetAxis ("Vertical");

transform.position += new Vector3 (h, 0f, v)*Time.deltaTime*moveSpeed;

transform.rotation *= Quaternion.Euler (new Vector3 (0f, 0f, -h) * rotateSpeed * Time.deltaTime);

//rotate 함수 사용시

//transform.Rotate (new Vector3 (0f, 0f, 0f) * rotateSpeed * Time.deltaTime, Space.World);

}

}


스크립팅에서 로컬 축의 벡터 방향은 transform.right(로컬X축방향), transform.up(로컬y축방향), transform.forward(로컬 z축방향) 속성을 통해 가져올 수 있다.