• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

18.07.23 16:56 작성 조회수 4.53k

0

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

답변 2

·

답변을 작성해보세요.

0

서정민님의 프로필

서정민

질문자

2018.07.27

감사합니다

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;

}

}

}

tmddnr8840님의 프로필

tmddnr8840

2022.07.19

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

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

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

hjcho님의 프로필

hjcho

2022.09.29

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

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

{

isJumping = false;

}