我是从基本和遵循团结官方教程在团结网站和youtube频道。我想在平面上滚动一个带有x,y,z轴的球,但如下代码所示,我的球只传递给-y,它不会在舞台上移动,它只会下降,跟随轴Y (-42.83892)。
这是密码
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
private Rigidbody rb;
public float speed;
void Start() {
rb = GetComponent<Rigidbody>();
}
void FixedUpdate() {
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.1f, moveVertical);
rb.AddForce(movement*speed);
}
}这是我对地的选择

这是Player的选项

发布于 2016-03-03 03:11:46
更新:哦,我看到你的问题了。
Vector3 movement = new Vector3(moveHorizontal, 0.1f, moveVertical);你在你的球上增加了一个0.1的垂直力,每一个框架。不要这样做,只需保持中间属性为0,否则它会使你的球飞起来,因为它不断增加越来越多的力量到球。
你让你的球对撞机有一个“触发对撞机”,这意味着它不会“击中”其他物体,而是会通过它。确保您取消选中,“是触发器”框中的播放器和游戏场。

它应该是这样的:
播放器:

地面:

发布于 2016-03-03 03:08:34
好像你还没有把刚体组件附加到你的球体上。添加它并取消选中“使用重力”复选框。
正如斯科特在下面提到的,您必须取消"Is触发器“.By检查,这两者都是触发器--”使用重力“会导致您所面临的问题。
但在未来你需要使用它。
所以很明显你的探长必须是这样的

最好遵循关于滚球的统一官方教程
编辑:您必须取消选中是触发器框的,并选中“使用重力”框。如果你检查一下,它都掉下来了
https://stackoverflow.com/questions/35762381
复制相似问题