2017-08-05 14 views
1

私は自分で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); 
    } 
} 

解決済み:カプセルコライダーが外れていました。

答えて

1

午後、私は最近あなたのコードをUnity3d、.cs、Fileにコピーしました。実際にはキューブを作成してゲームを2dモードにしました。その後、ファイル名を "PadMovement"私は新しく作成されたキューブにドラッグしました。プレイしたら、クリックして、キューブに「CharacterController」がないことに気付きました。私の "パドル"を持って、スムーズにX軸に沿って@ 50.0fのスクリーンの周りを動く。

私の入力は「キャラクターコントローラー」から来ていましたが、私のスピードはスピードのために持っていたシリアルフィールドから来ました!

0

機会がありますか?CapsuleColliderこのPadMovementコンポーネントを持っている同じGameObjectのコンポーネントまたは他のコライダーはありますか?それは地上の衝突から物体を飛び出させようとする高さのように聞こえる。

それだけであれば無害です。オブジェクトがyの0になるようにするには、そのオブジェクトを親オブジェクトにアタッチし、その親を0にします。

関連する問題