less than 1 minute read

작업 내용

오늘은 유닛들을 추가로 생성하고 애니메이션을 제작하고 적용하는 작업을 했다.
하면서 추가적으로 유닛 이미지가 맵 밖으로 나가거나 에셋 이미지에 따라 애니메이션이 자연스럽게 되도록 조절하는 등 잡다하지만 자연스러운 게임을 위해 중요한 내용들을 진행했다.
그래서 나온 결과가 대충 이렇다
스크린샷 2024-07-17 200625 문제는 애니메이션을 실행하고 끌 때, 처음에는 공격 애니메이션도 bool 값으로 껏다켰다 하려고 했는데 하다보니 이동 애니메이션이나 Idle 애니메이션은 껏다 키기가 명확해서 State 시작시나 이동 중에 실행되게 하였는데 공격 애니메이션은 공격할 때만 실행되게 하려니 중간중간에 공격을 하여 타이밍이 매우 짧았다.
그래서 결국에는 bool값으로 껏다켰다 대신에 Trigger로 공격 실행시 켜주고 Exit Time으로 끝나면 Idle로 전환되게 하였다.
그래야지 공격하는 순간은 짧아도 애니메이션이 전부 보여질 수 있었다. 그리고 공격 애니메이션은 공격 속도보다 짧게하고, 마지막 장면이 보여야하기에 일부러 애니메이션을 약간 늘리는 등 애니메이션을 조정하는데 시행착오가 길었다.
그리고 추가로 범위 공격을 추가하였다.

Collider2D[] colliders = Physics2D.OverlapCircleAll(targetEnemy.transform.position, attackArea);
for(int i = 0; i < colliders.Length; i++)
{
    if (colliders[i].CompareTag("Enemy"))
    {
        IDamagable enemy = colliders[i].GetComponent<IDamagable>();
        enemy.TakeDamage((int)stat.Atk.TotalValule);
    }
}

오버렙을 처음 써봤는데 아주 간단하면서도 유용했다.
그리고 공격이나 이동시 적이나 목적지 위치에 따라 flipX도 조절하였다.

마무리

앞으로 추가할만한 형태의 유닛은 : 공격이 슬로우를 거는 유닛, 단순 근접 공격 유닛, 아주 작은 시간차로 공격을 2번 나눠서 하는 유닛, 공격에 장전 시간이 필요한 유닛 정도가 있을 것 같다.