본문 바로가기
유니티/혼자서-1

3: 점프 기능 추가 및 충돌 처리

by 찡사랑방 2024. 10. 25.
728x90
728x90

 

안녕하세요! 이번 시간에는 큐브가 점프하는 기능을 추가하고, 바닥과의 충돌을 처리해볼 거예요. 이제 조금씩 게임다운 모습을 갖춰갑니다!

 

 

1. 점프 기능 구현하기


지난 포스팅에서 만든 스크립트를 수정해서 점프 기능을 추가해봅시다.

using UnityEngine;

public class MoveCube : MonoBehaviour
{
    private Rigidbody rb;
    private bool isGrounded = true;
    
    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {
        float moveSpeed = 5f;
        float move = Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime;
        transform.Translate(move, 0, 0);

        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.AddForce(Vector3.up * 300f);
            isGrounded = false;
        }
    }

    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag == "Ground")
        {
            isGrounded = true;
        }
    }
}

 

  • Rigidbody 컴포넌트를 추가해서 물리적인 힘으로 점프를 구현합니다. 그리고 바닥에 닿았을 때 다시 점프할 수 있도록 OnCollisionEnter 함수에서 처리해줍니다.

 

2. 바닥 오브젝트 추가하기

  • Hierarchy 창에서 우클릭 → 3D Object → Plane을 선택해 바닥을 추가해줍니다.
  • Plane을 선택한 상태에서 Inspector 창에서 'Tag'를 'Ground'로 설정해줍니다.
  • 이제 큐브가 바닥에 닿으면 다시 점프할 수 있게 됐어요!

다음 포스팅에서는 목표 지점과 게임 종료 조건을 추가해볼 거예요. 거의 다 왔어요!

728x90