528 단어
3 분
유니티 2D 캐릭터 이동과 점프 구현하기
Unity에서 2D 캐릭터의 이동과 점프를 간단히 구현하는 방법을 공유합니다. 아래 코드는 CharacterMovement라는 스크립트를 작성하여 캐릭터의 기본적인 이동과 점프 동작을 구현한 예제입니다.
코드 설명
using UnityEngine;
public class CharacterMovement : MonoBehaviour
{
public float moveSpeed = 5f; // 이동 속도
public float jumpForce = 5f; // 점프 힘
private Rigidbody2D rb;
private Vector2 movement;
private bool isGrounded; // 캐릭터가 땅에 닿아 있는지 여부
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
if (!enabled) return;
// 좌우 이동 처리
movement.x = Input.GetAxis("Horizontal");
// 점프 입력 처리
if (Input.GetButtonDown("Jump") && isGrounded)
{
isGrounded = false; // 점프 시 땅 상태를 false로 변경
// Rigidbody2D의 y축 속도를 직접 변경하여 점프
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
}
}
void FixedUpdate()
{
// 이동 처리
rb.velocity = new Vector2(movement.x * moveSpeed, rb.velocity.y);
}
void OnCollisionEnter2D(Collision2D collision)
{
// Ground 레이어와 충돌했을 때만 isGrounded를 true로 설정
if (collision.gameObject.layer == LayerMask.NameToLayer("Ground"))
{
isGrounded = true;
}
}
}
사용 방법
스크립트 추가
위 코드를 Unity 프로젝트에서 새 C# 스크립트로 생성하고 저장합니다. 예를 들어, 파일 이름을CharacterMovement.cs로 저장합니다.캐릭터에 스크립트 연결
Hierarchy 창에서 캐릭터를 선택하고, 해당 스크립트를 드래그하여 캐릭터에 추가합니다.Rigidbody2D 추가
캐릭터 오브젝트에Rigidbody2D컴포넌트를 추가합니다.Gravity Scale값을 조정하여 중력의 강도를 설정할 수 있습니다.
Ground 레이어 설정
바닥 역할을 하는 오브젝트에Ground라는 레이어를 추가하고, 해당 오브젝트를 해당 레이어로 설정하세요.
이 스크립트를 적용하면 캐릭터가 키보드의 방향키 또는 A/D 키로 좌우 이동할 수 있으며, 점프 키(Space)로 점프할 수 있습니다.
TIP캐릭터가 더 자연스럽게 움직이도록 하기 위해, 애니메이션과 더불어 물리적 파라미터를 세밀하게 조정하면 좋습니다.
