강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

서정민님의 프로필 이미지
서정민

작성한 질문수

유니티 게임 개발 (Unity 2D) - 시작부터 배포까지

러닝게임 제작 실습 3

점프를 한번만 누를 수 있게 하려면 어떻게 해야할까요?

작성

·

5.2K

0

점프가 계속 누를 수 있는 거를 막고 싶어요

답변 2

0

서정민님의 프로필 이미지
서정민
질문자

감사합니다

0

스터디 인코딩님의 프로필 이미지
스터디 인코딩
지식공유자

안녕하세요!

점프를 bool 변수로 컨트롤 하는 방법이 있습니다.

isJumping 이라는 변수가 false 일 때만 점프를 하도록 하고, 땅에 닿는 순간 isJumping 을 다시 false 로 바꿔주는 방법입니다.

간단히 아래 코드를 적어드릴 테니 참고하세요 :)

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class Jump : MonoBehaviour {

bool isJumping = false;

void Update() {

if (Input.GetKeyDown (KeyCode.Space)) {

if (isJumping == false) {

isJumping = true;

GetComponent<Rigidbody2D> ().AddForce (Vector3.up * 300f);

}

}

}

void OnCollisionEnter2D(Collision2D col) {

if (col.transform.name == "Ground") {

isJumping = false;

}

}

}

그런데 그라운드라는 이름을 가진 콜라이더를 밟으면 점프상태가 false가 되어 다시 점프가 가능해지는데 

만약 점프하고 오브젝트 위에 올라가게 되면 계속 점프가 true상태라서 점프를 못하게되는거 아닌가요?

오브젝트가 하나라면 && 해서 추가하면 되겠지만 종류가 많다면 그것도 어려울거구요

tag 시스템으로 gorund tag 가 있으면 점프가 차게 할수 있습니다.

if (col.transform.tag == "ground")

{

isJumping = false;

}

서정민님의 프로필 이미지
서정민

작성한 질문수

질문하기