1일1알

캐릭터 애니메이션, 콤보공격, 스킬, 몬스터 피격모션 본문

유니티/C# 서버 연동 유니티 포트폴리오

캐릭터 애니메이션, 콤보공격, 스킬, 몬스터 피격모션

영춘권의달인 2024. 5. 9. 22:09

서버로부터 이동 패킷을 받으면 클라이언트에서는 Movement 클래스에서 해당 정보를 받아서 처리한다.

패킷으로 온 목표 위치 정보와 방향 정보를 저장하고 Update문에서 서서히 움직이도록 한다.

목표 위치 정보를 이용해 애니메이션도 재생해준다.

단순히 움직이는 상태는 Locomotion이라는 상태로 지정했고, Blend Tree를 사용해 움직이는 방향에 맞도록 애니메이션이 재생되도록 하였다.

 

스킬 정보는 Json으로 저장하여 관리하였다.

skillTime은 스킬이 시전되는 시간, delayTime은 스킬이 시전되고 애니메이션의 공격이 적중되는 시점까지 걸리는 시간이다.

연속 공격을 구현한 방법이다.

기본공격은 연속공격 4까지 있고, 

예를들어 공격1 도중에 일반공격 입력이 들어오면 다음 공격을 예약해주고, 클라이언트에서는 현재 공격이 끝났을때 다음 공격이 예약되어있다면 바로 다음 애니메이션을 재생해준다. 예약되어있지 않다면 Locomotion 상태로 돌아온다.

그리고 공격2의 애니메이션 공격 시점을 알아야 그 시점에 공격 판정을 진행할 수 있는데, 위의 그림에서 RemainTick + DelayTick으로 현재 시점에서 얼마나 뒤에 공격 판정을 해야할지 알아내고 해당 시간 뒤에 공격 판정을 진행한다. LastUseSkillTick도 갱신해준다.

 

기본공격이 아닌 스킬은 Locomotion 상태에서만 사용할 수 있고, 콤보공격처럼 예약하거나 하는건 없다.

스킬을 사용한 뒤 delayTick 후에 스킬 정보에 있는 Range정보를 이용해 피격 판정을 한다.

 

일반 콤보공격 1~4, 스킬공격 2개

이펙트 추가 예정

'유니티 > C# 서버 연동 유니티 포트폴리오' 카테고리의 다른 글

채팅  (0) 2024.05.11
몬스터 처치, 플레이어 리스폰  (0) 2024.05.10
몬스터 AI, 스탯  (0) 2024.05.08
이동 동기화  (0) 2024.05.06
플레이어 입장, 퇴장  (0) 2024.05.05