낑깡의 게임 프로그래밍 도전기

2023년 8월 18일 금요일 Unity - 기초 오브젝트 움직이기와 축, Transform 컴포넌트(Translate, Rotate함수) 본문

Unity C#

2023년 8월 18일 금요일 Unity - 기초 오브젝트 움직이기와 축, Transform 컴포넌트(Translate, Rotate함수)

낑깡겜플밍 2023. 8. 18. 23:56
반응형

게임의 오브젝트를 움직일때는 transform을 건드려서 사용.

보통 x, y, z 축을 사용하여 Vactor3로 선언. (x, y만사용하면 Vactor2)

Destroy(gameObjext); //게임오브젝트 파괴

 

 

유니티 오브젝트 움직이기

Alt 마우스 좌클릭움직임 - 축기준 회전

Shift 마우스 우클릭움직임 - 뷰기준 회전
Alt + Ctrl 마우스 클릭움직임 - 이동
마우스 휠 - 확대 축소

오브젝트 이름 더블 클릭 - 해당 오브젝트 전체 맞춤 보기

W 위치
E 회전
R 크기

 

GetKey 설명
이거 3개는 동일하게 x축 (+)방향으로 speed만큼 이동한다

 

오브젝트 움직이기 및 스케일 키우기

 transform.position = Vector3.zero; 

Vector3를 0, 0, 0으로 위치 초기화

 

transform.Rotate(Vector3.back, 1);

Vector3에 대해 0, 0, -1

뒤의 1은 좌표계를 어떤걸로 잡을지 정의(0은 worldSpace == Space.World, 1은 localSpace == Space.Self) - 가독성이 좋지않은 매직넘버라 명시적으로 쓰는게 좋음

 

transform.localScale = Vector3.one * 2;

Vector3가 1, 1, 1일 때

 

Translate 메서드의 인자로 relativeTo 가 존재하는데 그 값에 따라 로컬 좌표계로 이동하는지 월드 좌표계로 이동하는지가 결정된다고 한다. 기본적으로는 로컬 좌표계로 설정되어있다고 한다.

 

position은 월드 축 기준이라 우리가 원하는 방향대로 움직이지 못한다.

 

X축 : left, right

Y축 : up, down

Z축 : forward, back

 

GetKey를 사용해서 프레임이 3개가 잡혀버림. 한번만 출력하는 것에서는 지양

 

반응형