Back Ground

Unity - Vector3 Class를 사용하여 이동 본문

Unity/Unity Engine

Unity - Vector3 Class를 사용하여 이동

Back 2021. 5. 5. 14:13

해당 글은 비개발자도 볼 수 있기 때문에 최대한 이해하기 쉽게 쓰려고 노력하여 작성했다.

 

Object 이동 

움직일 대상을 만들어준다. 

 - 테스트용으로 큐브하나를 만들어주었다.

 

큐브를 이동시키기 위해 PlayerMove 라고 대강 이름을 짓고 스크립트를 추가하였다.  (해당 큐브 오브젝트에 Script를 추가하였음)

 

 

 

물체 이동 공식

P(position) = P0(Position 0) + vt (Velocity와 Time)

뜻 : 변경 위치 = 현재위치 + 속도  * 시간

이 공식대로 움직여 볼 생각이다.

 

 

 

계속 물체를 이동시켜야 하기 때문에

LifeCycle의 Update함수에 해당 큐브의 transform의 position값을 변경해 준다.

1
2
3
void Update() { 
    transform.position = transform.position + Vector3.right * 5 * Time.deltaTime; 
}
 

[ 큐브의 위치 = 큐브의 위치 + 백터(오른쪽)(1,00) * 5 * Time.deltaTime(게임 프레임 시간); ]

 

[이동 공식대로 하자면 이렇게 표현]


그런데 Velocity(속도)는 왜 Vector까지 묶어놨는가?  [Vector란 backback.tistory.com/420]

벡터에는 방향을 갖고 있기 때문에 속도와 함께 계산 (즉, 방향없는 속도가 존재 할수 없기 때문)

 

 

 

자세히 코드 설명하자면 

큐브의 위치 값은 transform.position이 가지고있다.

 

- Transform : 게임오브젝트의 위치, 회전 그리고 스케일(scale)을 나타냄.

- transform.position :월드 공간에서 트랜스폼의 위치.

[Tip]
GameObject 지정없이 transform를 바로 사용할  수 있는건

현재 스크립트가 참조된 Object에는 GameObejct Class를 기본으로 갖고 있기 때문에 transform을 사용이 가능하다.

 

- Vector3.right : Object의 방향 지정한다.

 [Vector란 backback.tistory.com/420]

 

- Time : Time Class는 유니티로 부터 시간 정보를 받을때 사용되는 인터페이스

- Time.deltaTime : 화면(프레임)을 한번 주사하는데 걸리는 시간

[deltaTime이란 backback.tistory.com/421]

 

참고 문서 : docs.unity3d.com/kr/530/ScriptReference/Time.html

 

 

 

 

방향키 이용하여 [상하좌우]이동 방법 

> backback.tistory.com/422

'Unity > Unity Engine' 카테고리의 다른 글

Unity - deltaTime이란  (0) 2021.05.05
Unity - Vector란  (0) 2021.05.05
[MonoBehaviour] LifeCycle  (0) 2021.03.20
[Sprite] Filter Mode  (0) 2021.03.19
[Sprite] Pixels Per Unit (PPU)  (0) 2021.03.19
Comments