1 回答

TA貢獻(xiàn)1798條經(jīng)驗 獲得超3個贊
提出問題時,請嘗試更詳細(xì)地了解問題的事實,因為諸如“未按預(yù)期工作”和“跳躍不一致”之類的短語非常主觀,并且可能意味著不同的內(nèi)容,具體取決于閱讀它的人:)
我在我的機(jī)器上嘗試了代碼,發(fā)現(xiàn)有時按空格鍵不會啟動跳轉(zhuǎn)。似乎沒有出現(xiàn)其他問題(盡管您可能希望稍后為跳躍設(shè)置冷卻時間)。
問題在于您的跳轉(zhuǎn)代碼位于FixUpdate()中。FixUpdate()似乎在Update()之前運(yùn)行,但并不總是被調(diào)用。這就是為什么空格輸入有時會被忽視的原因。
將其放在Update()中將解決該問題。
using UnityEngine;
using System.Collections;
public class BallMovement : MonoBehaviour
{
public float speed;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
private void Update()
{
Camera mainCamera = GameObject.FindGameObjectWithTag("8BallCamera").GetComponent<Camera>() as Camera;
float moveHorizontal = Input.GetAxisRaw("Horizontal");
float moveVertical = Input.GetAxisRaw("Vertical");
Vector3 movement = mainCamera.transform.forward * moveVertical * 30;
rb.AddForce(movement * speed);
if (Input.GetKeyDown("space"))
{
rb.AddForce(0, 2f, 0, ForceMode.Impulse);
}
}
}
希望這可以幫助!
- 1 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報