7
03 기술설명
2. 플레이어 캐릭터
메인 카메라
스테이지 바닥 구성
UI를 위한 오브젝트
버튼 입력 이벤트
플레이어 캐릭터 구성
Sprite, Animator을 포함플레이어 공격 범위 판정
플레이어 피격 범위 판정
에너미 캐릭터 구성
Sprite, Animator을 포함
플레이어 캐릭터를 추적하기 위한 Collider 판정
에너미 캐릭터의 공격 범위 판정
에너미 캐릭터의 피격 범위 판정
8
03 기술설명
2. 플레이어 캐릭터
PlayerMain.cs
PlayerController.cs
상하좌우 버튼 입력후
플레이어 이동 처리
9
03 기술설명
2. 플레이어 캐릭터
PlayerController.cs
MovSpeed수치가 0.1이상이 되면
Player_Walk 애니메이션 동작
10
03 기술설명
2. 플레이어 캐릭터
PlayerMain.cs
PlayerController.cs
Fire1(z버튼) 입력 후
ATK 트리거 실행
애니메이션에
타격처리
11
03 기술설명
2. 플레이어 캐릭터
Player_ATKHeat.cs
히트 박스로 설정되어있는 컬라이더에
Attack 태그를 가진 컬라이더가 들어오면
HP를 감소시키고
PlayerController의 Heat 함수를 실행
피격중에 HP가 0이하로 감소할경우
PlayerController의 Dead함수를 실행
PlayerController.cs
피격 당했을때 캐릭터가 바라보고 있는 방향에 따라
넉백 효과를 간단하게 구현
(원래는 피격당하는 방향으로 이동해야함)
HP가 0이하로 떨어져 Dead함수를 실행할경우
Player_Dead 애니메이션을 실행시킨후
playerController(캐릭터 오브젝트가 들어가 있는) GameObject를 파괴
12
03 기술설명
3. 에너미 캐릭터
플레이어 캐릭터를 추적하는 컬라이더
플레이어 캐릭터가 접근하면 공격을 시도
플레이어 캐릭터의 공격을 피격당할
히트박스 컬라이더
플레이어 캐릭터를 공격할 컬라이더
13
03 기술설명
3. 에너미 캐릭터
씬 시작과 함께 ChangeMovement 코루틴 시작
0~4사이의 숫자를 랜덤으로 반환하여 에너미가
무작위로 움직이게 함
0이 반환되면 움직임 애니메이션을 중단
0이외의 경우 애니메이션 실행
1초간의 지연 시간을 가지고
ChangeMovement 코루틴 반복
EnemyCharacterController.cs
14
03 기술설명
3. 에너미 캐릭터
추격 컬라이더에 Player 태그가 붙은 오브젝트가 접근할 경우
ChangeMovement 코루틴을 중지하고
traceTarget 변수에 접근한 게임 오브젝트 설정
추격 컬라이더에서 Player태그를 가진 오브젝트가 이탈할 경우
추격을 중지하고 ChangeMovement 코루틴을 다시 실행
15
03 기술설명
3. 에너미 캐릭터
Dist 변수에 대입된 값에 따라
상하좌우로 이동할 수 있게 함
설정된 값에 따라 에너미 오브젝트를 이동
값이 남아있지 않도록 함수가 끝날때마다 초기화
16
03 기술설명
3. 에너미 캐릭터
공격 시도 컬라이더에 Player태그가 붙은 오브젝트가
접근할 경우 공격 애니메이션을 실행
오브젝트가 이탈할 경우 공격 애니메이션을 정지 함
EnemyATKController.cs
20
06 제작 후기
어려웠던 점
• 유니티 라는 Tool에 익숙하지 않았다
Ex) 엔진에서 지원하는 기능을 어떻게 사용하는지 모른다, 무엇이 있는지도 모른다,
알고 있어도 언제 사용해야 하는지 모른다
• 상호간에 영향을 미치는 복합적 프로그래밍을 시도해 본적이 이전에는 없었다
-> 책의 내용을 이해하는데는 어려움이 없지만 직접 제작하는데 어려움을 경험
상속, GetComponent등의 기능을 사용하는데 많은 시행착오를 겪음
ex) 실시간으로 변화하는 값을 가져오는 경우
• 프로그램이 어떤 식으로 구성되는지 알지 못해
최초 기획서 작성 및 프로그램 작성 중 문제 발생
-> 책의 내용을 벗어나 코드를 작성중에 문제가 발생하여 프로그램을 처음부터 재구성
대신 실패한 경험을 토대로 ‘왜 이렇게 작성 해야 하는가' 에 대한 이유를 알게됨
21
06 제작 후기
결론
게임을 제작하는 것은 생각보다 쉽지 않았다.
프로그램의 구조를 구성하는 것은 생각했던 것보다 더 복잡하게 구성해야할 필요를 느낌.
유니티 엔진이라는 Tool 자체의 불편함을 느낌.
기존에 시도해 보지 않았던 방식의 프로그램에 복잡하고 어려움을 느낌.
22
06 제작 후기
결론
게임을 제작하는 것은 생각보다 쉽지 않았다.
프로그램의 구조를 구성하는 것은 생각했던 것보다 더 복잡하게 구성해야할 필요를 느낌.
유니티 엔진이라는 Tool 자체의 불편함을 느낌.
기존에 시도해 보지 않았던 방식의 프로그램에 복잡하고 어려움을 느낌.
문서화, 초기 기획의 중요함을 깨달음
많은 어려움에도 불구하고 더 나은 결과물에 대한 욕심
결국 원하는 수준의 결과물을 내진 못했지만, 다음에는 더 잘할 수 있겠지?