Unity 도전하기

2D Unity Game 예제소스 따라하기 6p

Pparkst 2019. 5. 9. 21:35

오늘은 Unity 6일차로
Enemy를 만들어주는 단계다
일단 Player에게 해준 것처럼 AnimatorController에서 
Make Translate 하여 Enemy Idle에서 EnemyAttack로 정방향 역방향 모두 추가해준다.
추가해주고 정방형에서 Parameter에 EnemyAttack라는 Trigger를 추가해주고 Has Eixt를 체크 해제하여 언제든 바로 EnemyAttack를 동작하게 해준다
Duration Time은 1로 설정하였다
역방향에서는 Has Exit를 체크하여 진행 중이던 EnemyAttack를 끝내고 Idle로 돌아가도록 해준다
ExitTime은 1 Duration은 0.5로 설정하였다
Enemy는 Player와 같이 전에 작성한 MovingObject를 상속받아 MovingObject의 함수들을 Override한다 

Scripts에서..
그리고 적은 Player가 이동할 때마다 Position 방향으로 장애물이 없으므로 이동이 가능한지 체크하여​ Player가 이동 후 Player ​​방향으로 0.1초의 Delay마다 움직여준다

player = GameObject.FindGameObjectWithTag("Player").transform; 으로 Player의 Tag를 가진 컴포넌트의 transform을 저장한다

Player와 같이 Move 함수에서 Generic을 입력받고 base.Move <T>(x,y)로 부모의 Move를 실행한다.

그리고 Enemy의 Move에서 

위에서 가져온 player의 Transform으로 player의 위치를 파악 후 Enemy와 같은 선상에 있는지 체크하여 같은 x좌표로 이동, 

같은 x좌표라면 y좌표를 이동을 실행한다

새로운 레벨이 시작될 때 Enemies List를 초기화 해주고 재생성한다.

 그리고 Enemy의 Damage를 설정해주고 Enemy의 prefebs에 작성한 scripts를 더하고,

Enemy Scripts의 변수의 Damage를 Unity에서 직접 넣어준다.

 

오늘은 Enemy를 만들어보면서 다시 한번 Game 캐릭터의 Animation, Animator를 설정해 보았고 Player가 움직인 후 Enemy의 턴에 player에게로 이동하는 기능을 완료했다.ㅎㅎ