플레이어 애니메이션 적용

Window - Animation - Animation: Game 창 옆에 위치

Player 선택 후 Animation에서 Create 클릭 - Animations 폴더에 파일명 WalkUp으로 저장

스크린샷 2023-07-27 160648.png

Character_Up 이미지 4개를 모두 Animation 창에 끌어놓기

스크린샷 2023-07-27 160859.png

애니메이션 적용 0:00 ~ 0:30 - 위로 걷는 애니메이션 완성 (play 버튼으로 확인)

스크린샷 2023-07-27 161503.png

4개의 이미지로만 애니메이션을 구성할 시 움직임이 끊기듯이 어색함

4번째 이미지(0:30)를 복사해 0:40에도 배치하면 자연스러운 WalkUp 애니메이션 구현 가능

(0:30과 0:40은 같은 이미지임)

스크린샷 2023-07-27 162429.png

WalkUP 클릭 - Create New Clip… - 애니메이션 생성

같은 방식으로 총 8개의 애니메이션 생성

(WalkDown, WalkDownLeft, WalkDownRight, WalkLeft, WalkRight, WalkUp, WalkUpLeft, WalkUpRight)

Window - Animation - Animator

Animator 창에서 8개의 애니메이션 블록 모두 삭제

마우스 우클릭 - Create State - From New Blend Tree(Player_Move)

스크린샷 2023-07-27 164832.png

Player_Move 더블 클릭 - Parameters - MoveX로 이름 변경

스크린샷 2023-07-27 165307.png

+: Float 하나 더 생성 - MoveY로 이름 변경

Blend Tree 선택

Blend Type: 2D Simple Directional

Parameters: MoveX, MoveY 선택

Motion+ - Add Motion Field(x8): 8개 방향의 애니메이션을 위함

Animation 8개 적용: 0.1 기준으로 Pos X, Pos Y 방향 값 설정

스크린샷 2023-07-27 171154.png

아래 Preview 창을 올려서 빨간 점을 드래그하며 미리보기 가능

스크린샷 2023-07-27 171519.png

Animation 적용

public class PlayerController : MonoBehaviour
{
    private Rigidbody2D myRB;
    private Animator    myAnim;

    [SerializeField]
    private float speed;

    void Start()
    {
        myRB    = GetComponent<Rigidbody2D>();
        myAnim  = GetComponent<Animator>();
    }

    void Update()
    {
        myRB.velocity = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")) * speed * Time.deltaTime;

        // Animator 파라미터 값이 실수형임
				// void Animator.SetFloat(int id, float value)
        myAnim.SetFloat("moveX", myRB.velocity.x);
        myAnim.SetFloat("moveY", myRB.velocity.y);
    }
}

ㅈㄴ앞으로만 가고 애니메이션 적용이 안됨

뭐야 ㄹㅇ 다했는데