2017-08-05 24 views
1

我正在尝试自己学习Unity。我正在用Unity对象在3d中重新创建pong。我几分钟前就开始了,每次我向pad输入任何输入时,它的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); 
    } 
} 

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

回答

1

下午,我最近将你的代码复制到了'Unity3d',“.cs”文件中,实际上我创建了一个多维数据集,并将我的游戏置入2d模式,之后我命名了我的文件“PadMovement”我将它拖到我新创建的多维数据集上,一旦我完成了,我尝试点击播放,并注意到我的多维数据集没有附加到我的多维数据集的“CharacterController”。一旦我完成了并单击播放,我就有资格有我的“桨”,顺着X轴沿着50.0f的屏幕平滑地移动。我的输入来自“角色控制器”,我的速度来自您的速度的串行领域!

0

你是否有机会拥有一个CapsuleCollider组件或某个其他碰撞器在同一个GameObject上,并且你有这个PadMovement组件?这听起来像是一个高度,它可能只是试图将物体从地面碰撞中弹出。

这应该是无害的,如果这就是它。如果你真的想要一个对象的y为0,你可以将它附加到一个父对象上,并让这个父对象保持为0.

相关问题