簡體   English   中英

unity中跳轉定時器3d以及C#中如何定義空格鍵

[英]Jump timer in unity 3d and how to define spacebar in C#

我想知道是否有人知道如何設置跳躍限制或跳躍計時器,以便用戶不能在 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);
        }
    }
}

空格鍵輸入:Input.GetKey("space")

創建一個 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);
}

../

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM