Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 게임개발 독학
- premake5
- 언리얼
- uidesign
- 화살표 메서드
- qt프로그래밍
- rendermonkey
- Unity
- 유니티
- qt개발
- 화살피하기
- visualstudio2022
- 게임개발
- c#
- C++
- 유니티 입문
- 게임만들기
- 게임
- 2d게임개발
- c++class
- 공부
- python
- 비주얼스튜디오
- 이득우언리얼
- tinyxml2
- qt튜토리얼
- xml쓰기
- IMGUI
- 유니티 게임개발
- 파이썬
Archives
- Today
- Total
신입 개발자 공부 과정
Unity 2D 게임 개발 - 플레이어 애니메이션 적용 및 방향 전환 처리 본문
이번 포스트에서는 플레이어 캐릭터에 애니메이션을 적용하고, 이동 방향에 따라 캐릭터를 좌우 반전하는 방법을 알아봅니다. 기본적인 캐릭터 연출을 위한 중요한 요소입니다.
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 게임에서 애니메이션을 설정하고, 플레이어 이동 방향에 따라 스프라이트 반전과 애니메이션 전환을 구현하는 방법을 소개합니다.
'유니티 게임개발 따라하기' 카테고리의 다른 글
Unity 2D 게임 개발 - 점프 가능한 발판 만들기 (0) | 2025.05.26 |
---|---|
Unity 2D 게임 개발 - 타일맵(Tilemap)으로 맵 만들기 + 배경 꾸미기 (0) | 2025.05.26 |
Unity 2D 게임 개발 - 캐릭터 기본 이동 구현 (Rigidbody2D + Input System) (0) | 2025.05.20 |
Unity 2D 게임 개발 - 유니티 2D에서 플레이어 조작 시스템 만들기 (0) | 2025.05.14 |
Unity 2D 게임 개발 - Unity 설치부터 첫 프로젝트 만들기까지 (입문자를 위한 가이드) (1) | 2025.05.14 |