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"); } }