[ 걸어다니는 에단 ]
[[ Camera ]]
에단 캐릭터 수정
조작을 통행 움직였던 엔단을 AI를 통해 움직이는 객체로 만듬
ProjcetView : Standrad Assets/Characters/ThirdPersonCharacter/Prefabs/AIThirdPersonController =>(드래그) 씬
Name : Ethan 으로 변경
기존 캐릭터의 Transform을 현 Ethan에 정보 복사
기존 ThirdPsrsonController : Transform >> 설정(톱니바퀴) >> Copy Component
Ethan : Transform >> 설정 >> Paste Component Values
기존 ThirdPsrsonController 삭제
AI로 움직이는 에단 만들기 (네비게이션 추가)
Navmesh 베이커리
Plane Inspector : Static >> Navigation Static 선택 (네비게이션을 수행할 평면)
Cube Inspector : Static >> Navigation Static 선택 (네비게이션을 수행할 평면의 장애물 선택) - 위와 동일
Window >> Navigation (Navigation 창 열기)
Navigation >> Bake >> Bake 수행
푸른색으로 표시되는 네비 공간 체크
네비 타겟점 설정
GameObject >> CreateEmpty
Name : WalkTarget
WalkTarget =>(드래그) Ethan Inspector : AI Character Control (Script) >> Target
테스트
실행
씬에서 WalkTarget의 위치를 바꿔주면 계속 장애물을 피해서 움직이는 에단을 확인할 수 있음
렌덤하게 걸어 다니기
WalkTarget에 스크립트 삽입하기
Project : Assets >> Scripts 폴더에서 오른쪽 마우스 클릭
Create >> C# Script
Name : RandomPosition - Source Code Link
RandomPosition =>(드래그)WalkTarget
테스트
실행
5초마다 임의의 장소로 이동
Ethan : Inspector >> Nav Mesh Agent >> Steering
Speed : 0.3 / Angular Speed : 60 / Acceleration : 2
전체적으로 에단의 행동이 천천히 움직임
사용자가 보는 곳으로 Ethan을 이동 시키기
[ Ray / RayCast ]
Project : Assets >> Scripts 폴더에서 오른쪽 마우스 클릭
Create >> C# Script
Name : LookMoveTo(01.cs) - Source Code Link
LookMoveTo =>(드래그)WalkTarget
기존의 RandomPosition 스크립트는 비활성화 시킴
Plane =>(드래그) [ WalkerTarget Inspector : LookMoveTo : Ground ]
테스트
피드백 커서 추가하기
WalkTarget 오른쪽 마우스 클릭 >> 3D Object >> Cylinder
Cylinder Inspector >> Transform >> Scale (0.4, 0.05, 0.4)
Capsule Collider : 비활성화
Mesh Render : Cast Shadows, Receive Shadows 등 비활성화
테스트
커서의 문제점 해결
LookMoveTo(02.cs) - Source Code Link
모든 충돌된 GameObject에서 그라운드에 해당하는 게임 오브젝트에서 처리할 수 있도록 처리