티스토리 뷰

유니티에서는 캐릭터, 몬스터, 아이템과 같이 어떠한 오브젝트(객체)를 게임 오브젝트라는 이름으로 부릅니다.


게임오브젝트에 대한 내용은 다음에 포스팅하겠습니다!


지금은 이러한 게임 오브젝트를 움직이는 방법에 대해서 간단하게 알려드리겠습니다.



게임 오브젝트를 이동시키는 방법은 매우 많습니다.


1. Transform의 Position에 직접 접근하여 설정해주는 방법


2. Transform의 Translate함수를 이용하는 방법


3. Rigid Body를 설정해준후 velocity(속도)값을 설정해주는 방법


4. Character Controller를 이용하여 움직여주는 방법


등등이 존재합니다. 그럼 하나씩 코드를 살펴 보겠습니다.




1. Transform의 Position에 직접 접근하여 설정해주는 방법


1
2
  float speed = 10;
  transform.position += new Vector3(speed * Time.deltaTime, 00);
cs





2. Transform의 Translate함수를 이용하는 방법


1
2
float speed = 10;
transform.Translate(new Vector3(speed * Time.deltaTime, 00));
cs





3. Rigid Body를 설정해준후 velocity(속도)값을 설정해주는 방법


1
2
3
float speed = 10;
Rigidbody rigidBody = gameObject.GetComponent<Rigidbody>();
rigidBody.velocity = new Vector3(speed, 00);
cs


3-1. Rigid Body에 Force를 적용시켜 움직이는 방법 (해당방법의 경우 정확하게 원하는 움직임을 가지게 하기 힘들 수 있습니다.)


1
2
3
float force = 100//F = ma
Rigidbody rigidBody = gameObject.GetComponent<Rigidbody>();
rigidBody.AddForce(new Vector3(force, 00));    
cs





4. Character Controller를 이용하여 움직여주는 방법


1
2
3
float speed = 10;
CharacterController characterController = gameObject.GetComponent<CharacterController>();
characterController.Move(new Vector3(speed * Time.deltaTime, 00));
cs



각각 방법마다 나름의 장점이 있지만 저의 경우는 1, 2번을 많이 사용하는 것 같습니다. 


Rigid Body를 이용하는 경우는 물리 시뮬레이션이 필요한 경우에만 사용합니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함