[英]Unity 3D PlayerController Doesn't Work After Adding OnCollisionEnter() Method
所以我正在制作一个与刚体统一的播放器 controller,我对其进行了测试并且它有效。 然后在我为跳转添加 OnCollisionEnter 方法后的第二天,我对其进行了测试,controller 不再工作,但 OnCollisionEnter 工作。 最奇怪的是我没有收到错误,脚本只是不再工作了。 有什么帮助吗? 这是代码:
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public Rigidbody rb;
public float speed = 2000;
private bool canJump = false;
// Start is called before the first frame update
void OnCollisionEnter(Collision collision){
if(collision.collider.name == "Ground"){
UnityEngine.Debug.Log("Ground");
canJump = true;
}
void Start()
{
}
// Update is called once per frame
void FixedUpdate()
{
if(Input.GetKey("w")){
rb.AddForce(0, 0, speed * Time.deltaTime);
}
if(Input.GetKey("s")){
rb.AddForce(0, 0, -speed * Time.deltaTime);
}
if(Input.GetKey("a")){
rb.AddForce(-speed * Time.deltaTime, 0, 0 );
}
if(Input.GetKey("d")){
rb.AddForce(speed * Time.deltaTime, 0, 0 );
}
if(canJump && Input.GetKeyDown(KeyCode.Space)){
rb.AddForce(0, 2000 * Time.deltaTime, 0 );
canJump = false;
}
}
}
}
void OnCollisionEnter(Collision collision){
if(collision.collider.name == "Ground"){
UnityEngine.Debug.Log("Ground");
canJump = true;
}
} // <-- you forgot }
Start()
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.