0

2D ゲームの移動プラットフォームでのキャラクターの子育てに苦労しています。

プレイヤーが移動プラットフォームを踏んだときの検出に OnTriggerEnter2D() を使用しています。彼の親をそのプラットフォームに変更します。一般的な移動プラットフォーム (左右) では、すべて正常に機能します。キャラクターがそのプラットフォームに立っている場合、キャラクターはそれと平行に移動し、歩いたり、ジャンプしたりできます。HingeJoint2D で接続された 2 本のロープにぶら下がっているプラ​​ットフォームを使用すると、問題が発生します。プレーヤーは、左右に歩いてそのプラットフォームをスイングする必要があります。キーボード入力を使用するとすべて正常に動作しますが、タッチ入力コントローラーを使用すると、プレーヤーが動かない場合、キャラクターは 1 つの場所にとどまり、そのプラットフォームでは動きません。階層パネルではすべてが正しく、プレーヤーはプラットフォームの子であり、プラットフォームは動いていますが、キャラクターは動いていません。

キャラクターを動かすために私はこれを使用しています:(キャラクターコントローラーの一部)

float move = Input.GetAxis ("Horizontal”);
rigidbody2D.velocity = new Vector2 (move * maxSpeed, rigidbody2D.velocity.y);

キーボードやタッチ入力も同様です。違いは「move」変数の取得だけです。プラットフォームの移動とスイングのソリューションも同じです。(階層、親、コライダーなど)

これに数時間苦労していますが、何が問題なのかわかりません。

助けてくれてありがとう。

4

1 に答える 1