>
先日、Unityでゲームを開発していたら、Third Person Controllerを適用したキャラクターがジャンプし続けて上昇する不具合が発生しました。原因は、キャラクターのLayerを "Default" に設定したことにありました。
Third Person Controllerを適用しているキャラクターを選択し、Layerの設定値を確認してください。初期値は空(から)ですが、 "Default" に設定していたら、今回の不具合が発生します。これは、着地判定の対象のレイヤーの設定値が "Default" になっているからです。設定値を空に戻すことはできないので、 "Player", "Character" などのLayerを作成し、それを適用してください。
1Third Person Controllerを適用しているキャラクターを選択します。
2画面右上のLayerをクリックし、 [Add Layer...] をクリックします。
3空いているUser Layerにキャラクター用のレイヤー名 (例: "Character", "Player") を入力します。
4再度、Third Person Controllerを適用しているキャラクターを選択し、画面右上のLayerをクリックし、先ほど作成したキャラクター用のレイヤーを選択します。
5"Do you want to set layer to Character for all child objects as well? (キャラクターの全ての子オブジェクトにもレイヤーを設定しますか?)" というダイアログが表示されます。 "No, this object only (いいえ、このオブジェクトだけです。)" を選択します。
これで不具合が解消されるはずです。
Third Person Controllerの着地判定の設定値を確認するには、キャラクターを選択し、InspectorのThird Person ControllerのGround Layersの項目を見てください。初期値は "Default" です。