유니티 특정물체 바라보기

2020. 4. 24. 18:52유니티실습

반응형

안녕하세요 UnityBeginner입니다.

이번 글에선 지정된 타깃을 바라보는 LookAt에 대해 알아보겠습니다.

 

오브젝트 구성

하이어라키에서 총 3개의 큐브를 생성하고 이름을 

각각 Player, Enemy, Ground로 변경합니다.  

 

트랜스폼 리셋

 

transform reset 시켜 position을 0, 0, 0으로 수정한 후에 

작업을 진행하겠습니다.

 

씬뷰

겹쳐진 Player, Enemy 오브젝트를 서로 떨어뜨려놓고 ground 오브젝트는 Y좌표를 -1 만큼 낮추고 Scale X와 Z를 20으로 높여주어 위 이미지와 같은 느낌을 만들어줍니다. ※ 구분을 하기 위해 색깔과 텍스쳐를 입혔습니다.

 

 

스크립트

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개의 오브젝트에 

리지드 바디(물리적 제어) 컴포넌트를 추가하고 결과를 확인해보겠습니다.

 

결과 화면

 

동영상을 보면 적은 항상 플레이어를 바라보며 충돌 시 리지드 바디에 의해 

물리적 작용을 하여 가해진 힘만큼 밀려나게 됩니다. 

또한 중력이 작용하기 때문에 땅 이외에 공간으로 벗어나면 떨어지게 됩니다.


 

https://play.google.com/store/apps/details?id=com.NeighborGamer.escape

반응형