플레이어 애니메이션 적용
Window - Animation - Animation: Game 창 옆에 위치
Player 선택 후 Animation에서 Create 클릭 - Animations 폴더에 파일명 WalkUp으로 저장
Character_Up 이미지 4개를 모두 Animation 창에 끌어놓기
애니메이션 적용 0:00 ~ 0:30 - 위로 걷는 애니메이션 완성 (play 버튼으로 확인)
4개의 이미지로만 애니메이션을 구성할 시 움직임이 끊기듯이 어색함
4번째 이미지(0:30)를 복사해 0:40에도 배치하면 자연스러운 WalkUp 애니메이션 구현 가능
(0:30과 0:40은 같은 이미지임)
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)
Player_Move 더블 클릭 - Parameters - MoveX로 이름 변경
+: 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 방향 값 설정
아래 Preview 창을 올려서 빨간 점을 드래그하며 미리보기 가능
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);
}
}
ㅈㄴ앞으로만 가고 애니메이션 적용이 안됨
뭐야 ㄹㅇ 다했는데