안녕하세요!
소소한 개발자 입니다.
#1에서는 조이스틱을 이용하여 캐릭터 움직이는 것을 포스팅 했었는데
이번에는 캐릭터가 움직일때 애니메이션을 추가 해보도록 하겠습니다.
일단! 캐릭터가 휴머노이드 3d 캐릭터 이므로 에셋스토어에서 쉽게 애니메이션을 구할 수 있습니다!

먼저 에셋스토어에서 적당한 IDLE 애니메이션과 RUN 애니메이션을 구하셨다면
Player에 Animator 컴포넌트를 추가합니다.
그 후 Assets 폴더안에 Animator Controller를 생성합니다.
그리고 나서 받아두었던 IDLE과 RUN 애니메이션을 드래그 하시고 나중에 스크립트에서 불러올 이름을 지정해줍니다!
이제 기본 준비는 끝났습니다!
이제는 가만히 있을때는 Idle애니메이션을 달릴때는 Run 애니메이션을 실행시는 스크립트를 짜보겠습니다!
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
//-------#1
public enum State
{
None,
Idle,
Run
}
public class Player : MonoBehaviour
{
[SerializeField] private State platerState;
[SerializeField] private FloatingJoystick joystick;
[SerializeField] private float moveSpeed;
private Animator animator;
private float startTime = 3;
private float timer = 0;
private bool isStart = false;
//-------#2
public void Start()
{
platerState = State.Idle;
animator = this.gameObject.GetComponent<Animator>();
}
private void Update()
{
//-------#3
timer += Time.deltaTime;
if (startTime <= timer && isStart == false)
{
isStart = true;
PlayerState(State.Run);
}
if(platerState == State.Run)
Move();
}
private void Move()
{
Vector3 dir = (Vector3.forward*2) + Vector3.right * joystick.Horizontal;
transform.position += moveSpeed * Time.deltaTime * dir;
}
//-------#4
private void PlayerState(State state)
{
if(platerState == state)
return;
platerState = state;
switch (state)
{
case State.Idle:
PlayAnimation("Idle");
break;
case State.Run:
PlayAnimation("Run");
break;
}
}
//-------#5
private void PlayAnimation(string name)
{
if (string.IsNullOrEmpty(name))
return;
if (animator != null)
{
animator.Play(name);
}
}
}
저번주 Player 스크립트에서 이어 애니메이션 추가 및 3초뒤 출발하는 스크립트를 작성해보았습니다!
간단히 설명을 해보자면 먼저 스크립트에 있는
#1 - Player 상태 Enum
#2 - Player 상태 초기화 및 animator 컴포넌트 추가
#3 - 3초 타이머 후 스타트 로직!
#4 - Player 상태 변환(같은 상태가 들어오면 return)
#5 - 애니메이션 변경
간단한 코드들로 Player 상태 변환 및 애니메이션 변경 작업을 해보았습니다.
그 결과!
출발과 애니메이션이 잘 작동하는 모습을 볼 수 있었습니다.
애니메이션까지 추가 끝!
다음 포스팅에서는 특정 오브젝트를 지나갔을때 캐릭터 증식(?)을 구현해보도록 하겠습니다!

'게임 개발일지' 카테고리의 다른 글
#1 하이퍼 캐주얼 제작! - 캐릭터 움직임 (0) | 2023.07.02 |
---|