2017-08-05 72 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.

相關問題