유니티 게임개발 따라하기
Unity 2D 게임 개발 - 플레이어 애니메이션 적용 및 방향 전환 처리
Lewisjkim
2025. 5. 26. 12:36
이번 포스트에서는 플레이어 캐릭터에 애니메이션을 적용하고, 이동 방향에 따라 캐릭터를 좌우 반전하는 방법을 알아봅니다. 기본적인 캐릭터 연출을 위한 중요한 요소입니다.
1. 애니메이션 준비하기
▶️ 애니메이션 스프라이트 가져오기
- 걷기, 대기 등 Sprite Sheet를 프로젝트에 임포트
- Texture Type:
Sprite (2D and UI)
, Sprite Mode:Multiple
설정 Sprite Editor
에서Slice - Grid by Cell Size
사용해 자르기
▶️ Animation 생성
Window > Animation > Animation
창 열기- 플레이어 GameObject 선택 후
Create
버튼 클릭 Idle.anim
,Run.anim
등을 각각 생성- 잘라낸 프레임들을 타임라인에 드래그하여 애니메이션 구성
2. 애니메이터 설정
- 자동으로
Animator Controller
가 생성됨 (예:Player.controller
) Window > Animator
창에서 상태(State) 확인 가능- Idle → Run 전환 조건으로
isRunning
파라미터 추가 - 조건 설정:
isRunning == true
일 때 Run 실행, 아니면 Idle
3. 스크립트에서 애니메이션 전환 제어
▶️ PlayerMovement.cs 수정
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed = 5f;
public float jumpForce = 10f;
private Rigidbody2D rb;
private Animator animator;
private SpriteRenderer spriteRenderer;
private bool isGrounded;
void Start()
{
rb = GetComponent<Rigidbody2D>();
animator = GetComponent<Animator>();
spriteRenderer = GetComponent<SpriteRenderer>();
}
void Update()
{
float moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);
// 애니메이션 전환
animator.SetBool("isRunning", moveInput != 0);
// 방향 전환
if (moveInput != 0)
spriteRenderer.flipX = moveInput < 0;
// 점프
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
}
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.contacts[0].normal.y > 0.5)
isGrounded = true;
}
void OnCollisionExit2D(Collision2D collision)
{
isGrounded = false;
}
}
4. Animator 트랜지션 팁
- Has Exit Time 체크 해제: 빠른 전환을 위해
- Transition Duration 0으로 설정하면 딱 끊김 없는 자연스러운 전환 가능
✅ 마무리
이제 캐릭터가 움직이면 애니메이션이 전환되고, 이동 방향에 따라 좌우 반전되는 캐릭터를 완성했습니다. 다음 포스트에서는 플랫폼 게임의 핵심! 점프 가능한 발판과 적 캐릭터 추가를 진행해 보겠습니다.
🔖 태그:
Unity2D, 애니메이션, Animator, Sprite Flip, 유니티 애니메이터, 방향 전환
📝 검색 설명:
유니티 2D 게임에서 애니메이션을 설정하고, 플레이어 이동 방향에 따라 스프라이트 반전과 애니메이션 전환을 구현하는 방법을 소개합니다.