Collision ThirdPersonController n’appelant pas l’événement OnTriggerEnter

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { public Transform target; // Update is called once per frame void Update () { } private void OnTriggerEnter(Collider col) { if (col.gameObject.tag == "Test") { this.transform.position = target.position; } } } 

J’ai un ThirdPersonController et je veux qu’il entre en collision avec un cube ou un cylindre. Le script est attaché à ThirdPersonController.

J’ai essayé d’append au cylindre ou au cube Rigidbody l’activation / la désactivation de Use Gravity et de Is Kinematic, mais rien. Ce n’est pas aller à l’événement.

ThirdPersonController utilise CharacterController et OnControllerColliderHit est utilisé pour cela, pas OnTriggerEnter .

Notez que vous devez le déplacer avec la fonction Move et non directement par sa transformation pour OnControllerColliderHit soit appelé.

 void OnControllerColliderHit(ControllerColliderHit hit) { } 

Tout est correct, mais le problème ici est que vous modifiez la position de l’object qui entre en collision avec un deuxième object, mais le problème est que le collisionneur est déjà là ….. Sinon, essayez d’imprimer n’importe quel déclaration quand la collision se produit comme ça

 private void OnTriggerEnter(Collider other) { if (other.tag==your_tag) { print("message"); } }