私は別の車のアニメーションがMAXからインポートした道路を走行を持っています。私は車が別の車からトリガを開始すると停止するようなインテリジェントなシステムを作りたいです。これまで私はこれを試しました。左/ハンドル車のアニメーションと衝突
を追加しました4タグ名車で衝突型加速器(あなたは図1に見ることができるように)、carBack、carLeft、CarRight
車は右、このコードが含まれています。車の開始がcarBackと衝突した場合ことを確認し、右コライダーこのコライダーは車のオブジェクトにヒットした場合、その後の車になって停止が。(そして、トリガー終了時に、それが再開)することを、左の車にこのスクリプト
void OnTriggerEnter(Collider c) { if (c.tag == "Car") { Debug.Log("collided with : carsideTriggerScript :" + c.transform + " - object Name to stop : " + gameObject.name); c.transform.gameObject.GetComponent<AnimationControlSpeed>().Speed = 0; //StartCoroutine(DecreaseSpeedGradually(transform.gameObject.GetComponent<AnimationControlSpeed>())); } } void OnTriggerExit(Collider c) { if (c.tag == "Car") { Debug.Log("Exi collided with : carsideTriggerScript:" + c.transform + " - object Name to resume : " + gameObject.name); c.transform.gameObject.GetComponent<AnimationControlSpeed>().Speed = 1; } }
追加したスクリプトを追加しましたコライダーを停止してからトリガーを終了すると、再開します。上記と同じスクリプトです。
しかしシナリオでは、図2
で、私はそれを処理することを可能にしています見ることができる作成しています。 1台の車が衝突してcarRightColliderに衝突し、同じことが別の車で起こって、両方の車が停止して再び動くことができないように見える。 どうすればそれを制御できますか?同一のスクリプトが同じOntriggerEnterとロジックを持つすべてのゲームオブジェクトに添付されているためです。
あなたが球またはカプセルコライダー – slf
なぜ必要なように見えますか?理由は何ですか –
あなたはあなたのコライダーの間にギャップがあります。大きなコライダーを作成するか、既存のコライダーが重複していることを確認してください – slf