안녕하세요 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
'유니티실습' 카테고리의 다른 글
유니티 광고적용하기 애드몹 (0) | 2020.04.26 |
---|---|
유니티 부드러운 곡선이동 (1) | 2020.04.25 |
유니티 물리적 제어가 가능한 강체 만들기 (0) | 2020.04.23 |
유니티 초단위 시간제어하기 (0) | 2020.04.22 |
유니티 물체이동시키기 (0) | 2020.04.21 |