728x90
728x90
안녕하세요! 이번 포스팅에서는 플레이어 캐릭터를 씬에 추가하고 좌우 이동 기능을 구현하겠습니다. 캐릭터의 이동은 게임에서 중요한 요소이니, 차근차근 따라와 주세요!
혹시나 유니티 설치 혹은 프로젝트 만들기를 안하신 분들은 아래 링크를 확인해 주세요!
https://jinit.tistory.com/entry/유니티로-슈퍼마리오와-같은-게임-만들기-1
1. 플레이어 캐릭터 스프라이트 추가
- 캐릭터 이미지 가져오기
- 사용하고 싶은 캐릭터 이미지를 유니티 Assets 폴더에 가져옵니다. 이미지가 없으면 간단한 정사각형 모양도 좋습니다.
- 스프라이트 생성 및 이름 지정
- Hierarchy 창에서 GameObject > 2D Object > Sprite를 선택해 새 스프라이트를 생성하고 이름을 Player로 지정합니다.
- Player 오브젝트를 선택하고 Inspector 창의 Sprite Renderer에서 가져온 캐릭터 이미지를 지정하세요.
- 위치 조정
- Transform 컴포넌트의 Position 값을 사용해 캐릭터의 위치를 조정하여 바닥에 올려 놓습니다.
2. 캐릭터 이동을 위한 스크립트 작성
이제 캐릭터의 좌우 이동을 구현할 스크립트를 작성해 보겠습니다.
- 스크립트 파일 생성
- Project 창에서 Assets 폴더 내에 Scripts라는 폴더를 생성합니다.
- 이 폴더 안에서 PlayerMovement라는 C# 스크립트를 생성합니다. 이 스크립트를 Player 오브젝트에 드래그하여 추가합니다.
- PlayerMovement 스크립트 작성
스크립트를 열고 아래의 코드를 추가합니다.
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed = 5f;
private Rigidbody2D rb;
private float moveInput;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
moveInput = Input.GetAxis("Horizontal"); // 좌우 입력 받기
rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);
}
}
- moveSpeed: 이동 속도를 설정하는 변수입니다. Inspector 창에서 쉽게 조정할 수 있습니다.
- Rigidbody2D: 캐릭터에 물리 효과를 적용하기 위해 사용합니다.
- Input.GetAxis("Horizontal"): Unity의 입력 시스템으로, 키보드 왼쪽/오른쪽 화살표 또는 A/D 키로 입력을 받습니다.
3. Rigidbody2D 컴포넌트 추가
- Player 오브젝트를 선택한 후, Inspector 창에서 Add Component > Rigidbody2D를 선택합니다.
- Gravity Scale은 기본값인 1로 두고, Constraints에서 Freeze Rotation Z를 체크하여 캐릭터가 회전하지 않도록 설정합니다.
3. 캐릭터 이동 테스트하기
- 플레이 모드 실행
- Unity 에디터 상단의 Play 버튼을 눌러 게임을 실행합니다.
- 좌우 화살표를 눌러 플레이어가 이동하는지 확인하세요. 캐릭터가 부드럽게 움직인다면 성공입니다.
- 속도 조정
- 이동 속도가 마음에 들지 않으면 Player 오브젝트의 PlayerMovement 스크립트에서 moveSpeed 값을 조정하여 속도를 변경할 수 있습니다.
4. (선택) 간단한 애니메이션 추가하기
기본적인 좌우 이동이 구현되었으니, 캐릭터가 움직일 때 애니메이션이 재생되도록 해보겠습니다.
- 애니메이터 컴포넌트 추가
- Player 오브젝트에 Animator 컴포넌트를 추가합니다.
- 애니메이션 클립 생성
- Assets > Animations 폴더를 만들고, 캐릭터의 이동 애니메이션 클립을 생성합니다. 이미지가 없을 경우 간단히 색상을 변경하거나 회전시키는 애니메이션을 만들어도 좋습니다.
- 애니메이션 전환
- Animator에서 Idle 상태와 Run 상태를 만들고, 이동 시 Run 애니메이션이 재생되도록 설정합니다.
이제 기본적인 조작이 가능해졌으니, 다음 포스팅에서는 점프 기능과 바닥 충돌 처리를 구현하겠습니다.
728x90
'유니티 > 플랫폼 게임 만들기' 카테고리의 다른 글
유니티로 슈퍼마리오 같은 게임 만들기 #6 - 캐릭터 애니메이션 추가하기 (0) | 2024.11.04 |
---|---|
유니티로 슈퍼마리오 같은 게임 만들기 #5 - 적과의 충돌 처리 및 기본 공격 기능 구현 (0) | 2024.10.30 |
유니티로 슈퍼마리오 같은 게임 만들기 #4 – 적 캐릭터 추가와 플레이어 추적 기능 구현 (1) | 2024.10.30 |
유니티로 슈퍼마리오같은 게임 만들기 #3 - 플레이어 점프와 바닥 충돌 구현 (0) | 2024.10.28 |
유니티로 슈퍼마리오와 같은 게임 만들기 #1 (1) | 2024.10.26 |