Unity とスクリプトは初めてです。2 人のプレーヤーがいて、どちらもキャラクター コントローラーを使用しています。私はこのことをしました
- onControllerColliderHit 関数を使用しました。
- このgameobj.nameのように名前を出力しました。
- ヒットしたオブジェクトの名前が表示されます
しかし、問題はそれを通過することです。通過できず、剛体と同じように動作することを望みます。2番目のプレーヤーがそれを打つ力の効果があるに違いないのと同じように。
Unity とスクリプトは初めてです。2 人のプレーヤーがいて、どちらもキャラクター コントローラーを使用しています。私はこのことをしました
しかし、問題はそれを通過することです。通過できず、剛体と同じように動作することを望みます。2番目のプレーヤーがそれを打つ力の効果があるに違いないのと同じように。
ドキュメントを確認してください。CharacterController はそのままではRigidBody
アタッチされていません:
Character Controller は、主に Rigidbody 物理を使用しない第三者または一人称のプレイヤー コントロールに使用されます。
基本的には、シーン内のキャラクターとオブジェクト間の競合を防ぐためCharacterController
だけに設計されていますが、 2 間で衝突が発生した場合、期待どおりに動作しません。Collisor
CharacterControllers
特に:
コントローラは、それ自体の力に反応せず、リジッドボディを自動的に押しのけません。
OnControllerColliderHit のドキュメントに示されているように、衝突が発生したときに手動で衝突を処理できます。たとえば、移動方向があるため、衝突したときにキャラクターコントローラーオブジェクトを互いに押し離すことができます。
Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);
transform.Translate (-pushDir * offset);