1 回答
TA贡献1798条经验 获得超3个赞
提出问题时,请尝试更详细地了解问题的事实,因为诸如“未按预期工作”和“跳跃不一致”之类的短语非常主观,并且可能意味着不同的内容,具体取决于阅读它的人:)
我在我的机器上尝试了代码,发现有时按空格键不会启动跳转。似乎没有出现其他问题(尽管您可能希望稍后为跳跃设置冷却时间)。
问题在于您的跳转代码位于FixUpdate()中。FixUpdate()似乎在Update()之前运行,但并不总是被调用。这就是为什么空格输入有时会被忽视的原因。
将其放在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 关注
- 113 浏览
添加回答
举报