반응형
게임 플레이어 캐릭터를 설정하고 상황에 따른 애니메이션 적용과 움직임에 대하여 스크립트를 작성합니다.

- 캐릭터 애니메이션을 위하여 Animations 폴더를 생성합니다.
- 캐릭터의 기본 모습/상태의 스프라이트를 한번에 잡아서 화면에 배치합니다.
- 2D의 경우 각 움직이는 이미지가 나눠져 있고, 3D는 다른 방식으로 애니메이션을 적용합니다.

- 나눠진 이미지에 대한 새로운 애니메이션을 저장합니다.

- 플레이어나 다른 캐릭터를 클릭하면 현재, Pixels Per Unit 의 값이 100으로 되어있습니다.
- 현재 스케일이 1X1X1로 되어 있으며, 1 스케일에 사용되는 픽셀이 100 이기때문에, 크기가 작아지며, 동일한 스케일에 픽셀이 적을수록 크기가 커지게됩니다.
- Player Run / Player Jump / halmoni / delivery 의 값을 화면에 알맞게 변경합니다.
- 값을 조정하거나 스케일 값을 조정해도 괜찮습니다.

- 플레이를 하면 캐릭터는 정상적으로 애니메이션이 작동하는 것을 확인할 수 있습니다.
- 게임에서 플레이어와 같은 캐릭터는 중력이나 충돌에 영향을 받아야 합니다.
- 공중에 멈춰있는게 아닌 점프를 하면 떨어져야 하고, 물체에 부딛치거나 하는 물리법칙을 적용해야 합니다.
- 플레이어 캐릭터에 Rigidbody 2D 와 Box Collider 2D를 Add Component 해줍니다.
- 플레이어에만 해주면 바닥 아래로 추락하기 때문에 바닥에도 Box Collider 2D 를 적용해줍니다.
- Box Collider는 충돌을 처리해주며, Rigidbody는 물리법칙과 중력을 작용하는 역할을 합니다.
using UnityEngine;
public class Player : MonoBehaviour
{
[Header("Settings")]
public float JumpForce;
[Header("References")]
public Rigidbody2D PlayerRigidBody;
private bool isGrounded = true;
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
PlayerRigidBody.AddForceY(JumpForce, ForceMode2D.Impulse);
isGrounded = false;
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.name == "Platform")
{
isGrounded=true;
}
}
}
- 플레이어 점프를 위한 스크립트입니다.
- 점프에 대한 힘 값을 작성하고 스페이스 키를 입력하면 작성한 힘 만큼 점프를 합니다.
- 연속적인 키 입력으로 점프가 계속 가능한 것을 방지하기 위해 바닥을 감지하여 조건을 주었습니다.
[Header("Settings")]
public float JumpForce;
[Header("References")]
public Rigidbody2D PlayerRigidBody;
private bool isGrounded = true;
- JumpForce 는 점프에 대한 값 이며, 값이 높을 수록 높이 점프합니다.
- isGrounded 는 점프 가능 여부에 대한 참/거짓 입니다.
void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
PlayerRigidBody.AddForceY(JumpForce, ForceMode2D.Impulse);
isGrounded = false;
}
}
- 스페이스를 입력하고 isGrounded가 참(true) 이면 점프가 가능합니다.
- 점프 상태 이므로 isGrounded 를 거짓(false)로 변경하여, 점프가 안되도록 합니다.
private void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.name == "Platform")
{
isGrounded=true;
}
}
- isGrounded 가 다시 점프가 가능하도록 하려면 true 상태로 변경해줘야 합니다.
- 이때, 플레이어가 Platform 이라는 오브젝트, 즉, 바닥과 충돌하면 변경하도록 하였습니다.

반응형
'Unity Project > Unity6 Challenge (김치-런)' 카테고리의 다른 글
| [Unity 6 Challenge] 장애물 만들기(1) (2) | 2024.12.19 |
|---|---|
| [Unity 6 Challenge] 캐릭터 플레이어 애니메이션 (0) | 2024.12.18 |
| [Unity 6 Challenge] 무한 스크롤링 (2) | 2024.12.17 |
| [Unity 6 Challenge] 프로젝트 세팅 및 배경 이미지 적용하기. (2) | 2024.12.17 |
| [Unity 6 Challenge] Unity 6 설치하기. (1) | 2024.12.17 |