[유니티] Unity LookAt

안녕하세요 UnityBeginner입니다.
이번글에선 지정 된 타겟을 바라보는 LookAt에 대해 알아보겠습니다.

오브젝트 구성


하이어라키에서 총 3개의 큐브를 생성하고 이름을 
각각 Player, Enemy, Ground로 변경합니다.  


트랜스폼 Reset


transform reset시켜 position을 0, 0, 0 으로 수정한 후에 
작업을 진행하겠습니다.


씬뷰


겹쳐진 Player, Enemy 오브젝트를 서로 떨어뜨려놓고 ground 오브젝트는 Y좌표를 -1 만큼 낮추고 Scale X와 Z를 20으로 높혀주어 위 이미지와 같은 느낌을 만들어줍니다.

※ 구분을 하기 위해 색깔과 텍스쳐를 입혔습니다.


스크립트


1
2
3
4
5
6
7
8
9
private Transform player;

void Start() {
    player = GameObject.FindGameObjectWithTag("Player").transform;
}

void Update() {
    transform.LookAt(player);
}


이번엔 Enemy 스크립트를 생성하여 다음과 같이 작성해줍니다.

※ FindGameObjectWithTag는 태그이름으로 오브젝트를 찾는 함수입니다.

LookAt은 오브젝트의 transform을 회전시켜 target을 바라보게 만드는 함수이며 
적들이 주인공을 바라보면서 추적하는 용도로 사용합니다.

Player 오브젝트엔 Player이동 스크립트, Enemy오브젝트엔  
Enemy스크립트를 포함시키고 Enemy, Player 2개의 오브젝트에 
리지드바디(물리적제어) 컴포넌트를 추가하고 결과를 확인해보겠습니다.


결과화면



동영상을 보면 적은 항상 플레이어를 바라보며 충돌시 리지드바디에 의해 
물리적 작용을하여 가해진 힘만큼 밀려나게 됩니다. 
또한 중력이 작용하기 때문에 땅이외에 공간으로 벗어나면 떨어지게됩니다.



댓글