방프리

Unity2D 게임 포트폴리오 개발 일지 D + 6 본문

GameEngine/UnityEngine

Unity2D 게임 포트폴리오 개발 일지 D + 6

방프리 2020. 2. 2. 21:56

이왕 캐릭터AI를 만든겸 플레이어도 똑같이 StateMachine을 사용하도록 수정해보았다.

대신 Controller와 플레이어 캐릭터의 분리가 필요했다. 

일반 캐릭터와 별개로 움직여야되기 때문에 State 클래스를 따로 제작했다.

Player_Idle.cs

채집 모드가 아닌 상태에서 현재 위치와 클릭된 위치의 길이가 차이가 났을 때 바로 Run상태로 바꾸게 했다.

매 프레임마다 현재 위치와 클릭된 위치와 계속 값을 계산하지만 연산량이 크지 않기 때문에 놔두기로 했다.

(오히려 적은 연산량으로 잘 분리시켰다고 생각한다.)

이후 PlayerCharacter.cs에는 Character.cs와 내용을 비슷하게 구현했다.

에러없이 잘 돌아갔다 ㅎㅎ 

Player_Run.cs 중 Execute() 메소드

움직이는 상태에 들어가는 Enter()에 스프라이트를 회전하는 걸 넣었더니 연속으로 클릭했을 때

상태가 변하지 않은 상태에서 움직여서 이상한 방향을 보며 걷게 되었다. 

그래서 플레이어 캐릭터는 Execute()시에도 계속 검사해서 x축 회전을 맞게 해주었고 

일반 캐릭터의 경우엔 한 번 움직인 다음 대기상태로 가니 굳이 매 프레임마다 할 필요가 없어서 

처음 상태로 들어가는 Enter()함수에 들어갈 때 스프라이트 X축을 정하도록 구현하였다.

다음은 UI 및 건축물 설치 관련을 제작해봐야겠다.

Comments