(유니티) 절대 위치 움직이기와 상대 위치 움직이기

  • DKLaw 

유니티의 transform을 움질일 때는 물리법칙을 이용하지 않는 경우 당연히 translate를 이용합니다.

그러나 이는 상대적인 위치를 바꾸는 함수입니다. 따라서 플레이어가 rotation을 바꾸었다면, 그에 따라 방향이 바뀌겠죠.

만약 어떤 물체 위에 있는 캐릭터를 물체와 같이 움직이게 하려면, 절대 값을 움직여야 합니다.

플레이어에게 회전을 준 경우에는 말이죠. 전 플레이어가 왼쪽과 오른쪽을 볼 때마다 rotation을 바꾸도록 하였거든요.

이 때는 translate가 아니라 rotation으로 플레이어를 같이 움직이게 해야 합니다.

이렇게요.

    void MoveObject(Vector3 delta)
    {
       transform.Translate( delta); 
        if (coll.IsTouchingLayers(player))
        {
           GameObject.FindGameObjectWithTag("Player").transform.position = GameObject.FindGameObjectWithTag("Player").transform.position + delta;
          //  GameObject.FindGameObjectWithTag("Player").transform.Translate( delta); 
        }
    }