![article thumbnail image](https://blog.kakaocdn.net/dn/csTq4z/btqKhk1gRCd/9mhIyNJ8bPhSYXkVuK9Dk1/img.png)
반응형
오늘 한 작업
- UI 프로토타입 완료
- 플레이어 콤보 공격 구현
bool 변수 하나를 추가해서 플레이어 콤보 기능을 구현했다.
공격 시 시간을 저장하고, 일정 길이 범위 안일 경우 콤보 공격을 진행한다. 공격을 진행할 때마다 코루틴 함수를 멈췄다가 다시 호출함으로써 시간 카운트를 진행하였다. 1.4초 안에 유효한 입력이 들어오지 않으면 콤보가 끊긴다.
public void StartAttack()
{
isAttacking = true;
if (State != Define.State.Attack)
{
State = Define.State.Attack;
AttackType = PlayerAttack.None;
_time = Time.fixedTime;
}
else if (AttackType <= PlayerAttack.Attack3 && Time.fixedTime - _time > 0.35f ||
AttackType == PlayerAttack.Attack4 && Time.fixedTime - _time > 0.9f)
{
StopCoroutine("CheckCombo");
AttackType = AttackType + 1;
_time = Time.fixedTime;
}
StartCoroutine("CheckCombo");
}
IEnumerator CheckCombo()
{
yield return new WaitForSeconds(1.4f);
isAttacking = false;
}
검광 어떻게 넣는지 잘 모르겠어서 일단 무기 오브젝트의 자식으로 검광 프리팹 넣어 놓고, 애니메이션 이벤트를 통해 파티클 시스템 재생하는 함수를 호출하는 방식으로 진행했다.
내일 목표
- 플레이어 스킬 구현 (ChargeSkillA, SkillA, SkillB, 회복)
- 플레이어 구르기
- 플레이어 피격
- 플레이어 사망
구현 중 막힌 것
- Event System이 UI 오브젝트를 인식하지 못해서 몇 시간을 날렸다... 이것 때문에 진이 다 빠졌다. Scene 스크립트에서 생성해 주는 코드 서순을 변경했더니 잘 돌아간다. 왜 이렇게 동작하는지는 잘 모르겠다...
- 인벤토리 정보를 어디서 들고 있어야 가장 효율적일지 잘 모르겠다. 일단 따로 컴포넌트를 만들어 놓긴 했다. 몬스터 구현 및 충돌처리 끝내고 다시 해 봐야겠다.
반응형