一旦获得一些输入,我的游戏对象就会移动

时间:2017-08-05 00:03:55

标签: unity3d

我试图自己学习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);
    }
}

解决:有一个胶囊对撞机不合适!

2 个答案:

答案 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。