유니티) 5 ways to move an objects


핀볼을 만들라는 과제를 받고 잠시 생각해본 결과

단순히 움직이고 플리퍼를 이용해 쳐내는 것 뿐 아니라,
입사각과 반사각 계산과 원하는 방향으로 발사하는 기능을 구현해야 한다.

하지만 유니티에는 움직임을 구현하는 방법이 너무도 많고,
이를 먼저 정리를 해야 어느 방향으로 구현할지 결정이 될거같아

유니티 물리에 대한 정리를 한다.



- 해당 영상에서 5가지 방법을 가르쳐 준다. 아래에서 부터 위로 설명을 하고 있다.

1. transform
    
    

2. translate
    
    

3. Rigidbody AddForce( is kinematic 에 영향을 받는 물리 처리)
    
    
    - AddForce역시 5.velocity 와 같이 매 프레임마다 해당 속도값을 계속 더해주는게 발생

4. Rigidbody MovePosition
    

5. Rigidbody SetVelocity( is kinematic 에 영향을 받는 물리 처리)
    
    - 위와같이 velocity 에 값을 주는 것은 오브젝트에 '속도' 값을 주는것을 의미
    - 때문에 업데이트에서 하면 매 프레임마다 해당 속도값을 계속 더해주는게 발생

    
    - velocity 는 한번만 값을 주면 된다.
    - 이 때 해당 물체 있던 방향과 속력 모두 대입해준 데이터로 한번 변경해줌을 의미


* 참고
    - 해당 강의를 하는 사람은
        usually use transform
        물리가 필요한 경우 use AddForce or SetVelocity

- 핀볼을 하려면 velocity 를 자유자재로 이용할 수 있어야할 것 같은데...
- velocity 의 진행 방향을 받고, 반사각을 계산하여 힘 만큼 뿌려주면 된다.









댓글