我想知道是否有人知道如何设置跳转限制或跳转计时器,使用户不能在unity上进行垃圾跳转。这是我第一次使用C#,我不知道如何正确使用它,但这里是我的代码
另外,如果有人知道如何定义空格键,而不是使用w键,那就太好了。
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public Rigidbody rb;
public float ForwardForce = 800f;
public float SideWaysForce = 300f;
public float JumpForce = 200f;
public LayerMask GroundLayers;
public BoxCollider col;
void Start()
{
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
//change forward force
rb.AddForce(0, 0, ForwardForce * Time.deltaTime);
if ( Input.GetKey("d") )
{
rb.AddForce(SideWaysForce, 0, 0 * Time.deltaTime);
}
if (Input.GetKey("a"))
{
rb.AddForce(-SideWaysForce, 0, 0 * Time.deltaTime);
}
if (Input.GetKey("w"))
{
rb.AddForce(0, JumpForce, 0 * Time.deltaTime);
}
}
}
空间条输入。输入.GetKey("空格")
创建一个bool,并根据用户的高度是否超过原来的高度来跟踪用户是否在跳跃。当然你也可以根据你的游戏需求来修改自定义优化。
bool isJumping;
float originalPositionY;
void Start() {
rb = GetComponent<Rigidbody>();
originalPositionY = rb.position.y;
../
if (rb.position.y > originalPositionY) {
isJumping = true;
} else {
isJumping = false;
if (Input.GetKey("space") && !isJumping)
{
rb.AddForce(0, JumpForce, 0 * Time.deltaTime);
}
../