我试图自己学习Unity。我用Unity对象在3d中重新创建pong。我几分钟前就开始了,每当我把任何输入扔到打击垫时,它的y坐标都变为2.6,我不知道为什么。有人可以帮忙吗?
public class PadMovement : MonoBehaviour {
private CharacterController pad;
private Vector3 direction;
private Vector3 movement;
[SerializeField] private float speed = 50.0f;
// Use this for initialization
void Start() {
pad = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update() {
direction = new Vector3(Input.GetAxis("Horizontal"), 0, 0);
movement = direction * speed;
pad.Move(movement * Time.deltaTime);
}
}
解决:有一个胶囊对撞机不合适!
答案 0 :(得分:1)
下午,我最近将您的代码复制到了Unity3d&#39;,#34; .cs&#34;,文件中,实际上我创建了一个多维数据集并将我的游戏置于二维模式中,之后我命名我的文件&#34; PadMovement&#34;之后我将它拖到我新创建的多维数据集上,一旦我完成了我试图点击播放并注意到我的立方体没有&#34; CharacterController& #34;,附在我的立方体上,一旦我完成了这个并且点击了游戏,我就有资格使用我的&#34; paddle&#34;,沿着X轴在屏幕上平稳移动@ 50.0f。
明知道,我的输入来自&#34;字符控制器&#34;,我的速度来自您对速度的串行字段!
答案 1 :(得分:0)
你是否有机会在同一个GameObject上有一个CapsuleCollider
组件或其他一些碰撞器,你有这个PadMovement组件?这听起来像是一个高度,它可能只是试图将物体从地面碰撞中弹出。
如果完全没有,那应该是无害的。如果您确实希望对象的y值为0,则可以将其附加到父对象并使该父对象保持为0。