저번 소스 코드와 이어집니다.
bool 타입의 isJumping이라는 변수를 사용해 연속 점프를 방지했습니다.
소스코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerBall : MonoBehaviour
{
Rigidbody rigid;
public float jumpPower; //점프 높이 변수 선언
bool isJumping; // 점프 유무 변수 선언
void Awake()
{
rigid = GetComponent<Rigidbody>();
jumpPower = 10; //초기화
isJumping = false; //초기화
}
void FixedUpdate()
{
float x = Input.GetAxisRaw("Horizontal");
float z = Input.GetAxisRaw("Vertical");
Vector3 move = new Vector3(x, 0, z);
rigid.AddForce(move, ForceMode.Impulse);
}
void Update()
{
if (Input.GetButtonDown("Jump") && !isJumping) { //조건 추가
isJumping = true; //점프하면 isJumping을 true로
rigid.AddForce(new Vector3(0, jumpPower, 0), ForceMode.Impulse);
}
}
void OnCollisionEnter(Collision collision) //충돌 감지
{
if (collision.gameObject.tag == "Floor") { //tag가 Floor인 오브젝트와 충돌했을 때
isJumping = false; //isJumping을 다시 false로
}
}
}
결과
'유니티 3D기본(Roll A Ball)' 카테고리의 다른 글
16. 아이템 먹기 구현 (0) | 2021.10.24 |
---|---|
15. 공중에 떠 있는 아이템 만들고 회전시키기 (0) | 2021.10.24 |
13. 공 굴리기 (0) | 2021.10.24 |
12. 게임 인터페이스 만들기 (UGUI) (0) | 2021.10.22 |
11. 물리 충돌 이벤트 (0) | 2021.10.16 |