화살 스킬

CJB_ny·2022년 5월 19일
0

2D_Project

목록 보기
12/23
post-thumbnail

Pixel Per Unit = 20 으로 적절한 크기 설정후

이렇게 만들어서 Prefab에 넣자.

 protected override void UpdateIdle()
    {
        if (_dir != Define.MoveDir.None)
        {
            Vector3Int destPos = CellPos;
            // Vector3Int destPos = CellPos;

            switch (_dir)
            {
                case Define.MoveDir.Up:
                    destPos += Vector3Int.up;
                    break;
                case Define.MoveDir.Down:
                    destPos += Vector3Int.down;
                    break;
                case Define.MoveDir.Left:
                    destPos += Vector3Int.left;
                    break;
                case Define.MoveDir.Right:
                    destPos += Vector3Int.right;
                    break;
            }

            State = Define.CreatureState.Moving;

            if (Managers.Map.CanGo(destPos))
            {
                GameObject go = Managers.Object.Find(destPos);
                if (go == null)
                {
                    CellPos = destPos;
                }
                else
                {
                    Managers.Resource.Destroy(gameObject);
                }
            }
            else
            {
                Managers.Resource.Destroy(gameObject);
            }
        }

UpdateIdle부분을 이렇게 조금 수정해주도록 하자.

그리고

이렇게 화살 나갔다라는 부분 bool로 받아주고

이것을

UpdateAnimation부분에서 이런조건문으로 틀어주면된다.

화살 방향

(지금 화살이 나가지 않는데 스프라이트의 원래 방향대로 나간다

즉, 왼쪽으로 쏠떄는 90도 기울어진 상태로 나가야되는데 세로로된 것이 나감)

이것은 ArrowController의 Arrow라는 객체가 생성이 될 때 방향을 잡아주면되는데

이부분을

Init에서 이렇게 변경해주면된다.

그리고 실행하면

피격처리와 애니매이션 둘다 잘 된다.

나중에 서버 처리

클라베이스라면 클라에서 화살의 처리, 피격처리 하지만

나중에는 나중에 서바가 화살을 움직이고, 피격도 서버에서 계산을 해주게 된다.

그러나 이런 테스트 기능들을 만든다는 것은 의미가 있다.

나중에

스킬이 막 늘어나고 그러다보면

반드시 PlayerController에서 분리를 해주어야한다.

profile
공부 일기장으로 변해버린 블로그 (https://cjbworld.tistory.com/ <- 이사중)

0개의 댓글