본문 바로가기
IT Tip/유니티 강좌

[유니티 강좌] 오브젝트 점프하기

by 연꽃연못 2020. 11. 20.
반응형

게임을 만들때 점프하는게 쉬워보이면서도 참 여러가지 기능을 줘야 되서 그런지 기본을 벗어나면 어려워져요. 게임 완성도 높이는건 나중에 생각할 문제고 일단 기본 점프하는 방법입니다. 응용은 ^^ 필요할때 하면 되욤.. ㅋ

 

키보드 스페이스바를 클릭하면 점프!

(동작은 동영상을 참고해 주세요. )

 

 

먼저 점프할 바닥이 필요하니 Hirerarchy > 3D Object > Plane를 클릭해서 생성해주세요. 

(Hirerarchy 창에서 마우스 오른쪽 버튼을 클릭하면 오브젝트 추가하는 창이 나와요.)

 

 

하얀 바닥을 확인을 하고 다음으로는 똑같은 방법으로 Cube를 생성해 주세요. 

 

 

큐브가 바닥 중간에 껴 있는데 살짝 올려 줄거에요. Y좌표를 2로 지정해 주세요. ^^

 

 

스크립트 폴더를 만들어서 JumpController라고 이름을 줄거에요. 이름은 각자 하고 싶은데로 줘도 상관없어요. ^^

 

 

스크립트 내용은 아래를 참고로 해주세요. 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class JumpController : MonoBehaviour
{
    private Rigidbody rigidBody;
    public float jumpForce;

    void Start()
    {
        this.rigidBody = GetComponent<Rigidbody>();
    }

    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))
        {
            this.rigidBody.AddForce(transform.up * this.jumpForce);
        }
    }
}

 

스크립트를 간단하게 설명하자면...

전 높이를 지정해 버리는것보다 상황이나 설정에 따라서 변경되는게 좋아서 변수로 지정했어요. 

초기값은 0으로 설정되어 나오니 나중에 적당한 수치를 입력하면 되요.

 

public float jumpForce;

 

스페이스바를 눌렀을때 AddForce함수를 사용해서 점프 시켜요. 

AddForce는 Rigidbody클래스의 함수에서 오브젝트에 힘을 실어 움직임이 자연스러운 느낌으로 가능하게 해줘요. 

 

if(Input.GetKeyDown(KeyCode.Space))
{
	this.rigidBody.AddForce(transform.up * this.jumpForce);
}

 

 

이제 Cube에 Rigidbody를 적용해 줄거에요. 

 

화면 오른쪽 제일 밑에 보면 [ADD Component]가 있어요 클릭해주세요. 

 

 

다시 작은 창이 뜨면 [Physics]를 클릭하면 세부 선택으로 들어가요. 

 

 

여기서 [Rigidbody]를 선택하심 되요. ^^ 

ADD Component> Physics> Rigidbody 이런 순서대로 추가하면 되요. 나중에 하다보면 아무것도 아닌데 첨에는 좀 헤매게 되더라구요. ^^

 

 

추가하는게 끝났으면 이제 스크립트를 큐브에 적용시켜 줄거에요. 

먼저 Cube를 선택하고 아까 저장해 놓은 JumpController를 끌어와서 추가해주세요. 

 

 

 

 

스크립트를 추가하면 점프 높이를 입력하는 창이 밑에 같이 있을거에요. 거기에 전 300을 넣었어요. 

 

 

실행시켜서 확인하시면 되요. ^^

반응형

댓글