Page 1 sur 1
[RESOLU] OnTriggerEnter, je n'arrive pas à le faire fonctionner
Publié : 04 Nov 2021 15:32
par LjDelire
Bonjour, Mesdames Messieurs
Actuellement débutant sur unity3D, j'ai essayé de créer un script pour faire un agar.io
Mon problème actuellement est : que quand je veux qu'un le "Collider" d'un "GameObject" appellé "Other" rentre dans le Collider de ma Sphere, celle-ci soit détruis. Le problème est que ça ne fonctionne pas, elle reste présente et ne disparaît pas.
Pourriez-vous s'il vous plaît, me dire quel est le problème ?
je tien à précisé aussi que une connaissance à fait le même script que moi mais cela fonctionne pour lui.
voici mon code :
Code : Tout sélectionner
private void OntriggerEnter(Collider other) // Dès qu'un "collider" qui se nome "other" entre dans le trigger de mon gameobject
{
if(other.gameObject.tag == "bonbon")
{
Destroy(other);
}
}
Merci encore pour votre aide.
Cordialement, LjDelire
Re: OnTriggerEnter, je n'arrive pas à le faire fonctionner
Publié : 04 Nov 2021 16:09
par boubouk50
Salut,
Premièrement, tu dois respecter la casse et écrire
OnTriggerEnter(Collider other) et pas
OntriggerEnter(Collider other)
Ensuite, il faut que l'objet touché soit tagué
bonbon, avec la même orthographe et casse.
Enfin, je pense qu'il vaut mieux détruire l'objet et pas son component
Collider.
Re: OnTriggerEnter, je n'arrive pas à le faire fonctionner
Publié : 04 Nov 2021 21:07
par LjDelire
Bonjour,
Même en, rajoutant le T en majuscule rien ne change.
Pour le tag c'est pareille, la capsule est déjà en bonbon j'avais oublié de le préciser désolé.
Je ne comprend pas ça ne fonctionne toujours pas. Voici mon script entier, peut-être que cela peut aider :
Code : Tout sélectionner
//Add vitesse
private float Deplacement;
//Perso
GameObject Joueur;
// Taille
void Start ()
{
Joueur = gameObject;
}
void Update ()
{
Deplacement = 1 - (((transform.localScale.x + transform.localScale.y + transform.localScale.z )/ 100 )* 3);
if(Input.GetKey(KeyCode.Z))
{
Joueur.transform.Translate(Deplacement*Time.deltaTime,0,0);
print("Avance");
}
if(Input.GetKey(KeyCode.S))
{
Joueur.transform.Translate(-(Deplacement * Time.deltaTime), 0, 0);
print("recule");
}
if(Input.GetKey(KeyCode.D))
{
Joueur.transform.Translate(0, 0, -(Deplacement * Time.deltaTime));
print("gauche");
}
if(Input.GetKey(KeyCode.Q))
{
Joueur.transform.Translate(0, 0, Deplacement * Time.deltaTime);
print("droite");
}
if(Input.GetKey(KeyCode.A))
{
Destroy(gameObject);
}
}
private void OnTriggerEnter(Collider other) // Dès qu'un "collider" qui se nome "other" entre dans le trigger de mon gameobject, faire le prgoramme suivant.
{
if(other.gameObject.tag == "bonbon")
{
Destroy(other.gameObject);
}
}
}
Re: OnTriggerEnter, je n'arrive pas à le faire fonctionner
Publié : 05 Nov 2021 00:05
par jmhoubre
Il faut que les deux objets aient un colllider et qu'un des 2 objets (au moins) ait un rigidbody.
Met tout le temps un Debug.Log("OnTriggerEnter") dans ta fonction OnTrigger, juste pour vérifier qu'elle se lance bien.
Re: OnTriggerEnter, je n'arrive pas à le faire fonctionner
Publié : 06 Nov 2021 00:55
par LjDelire
Rebonjour,
Non ça ne fonctionne toujours pas, mais j'ai remarqué que quand ma Sphere touche le bonbon , le bonbon ne rentre pas dedans, elle reste collé à sa surface(elle s'entre choque, mais rien ne rentre dans le Collider). Est-ce parce que je doit activer quelque chose dans les components ?
Cordialement, LjDelire
Re: OnTriggerEnter, je n'arrive pas à le faire fonctionner
Publié : 06 Nov 2021 00:59
par LjDelire
Je viens de régler mon problème.
Il fallait juste que j'active "is trigger" pour mon bonbon, car sinon rien ne peut entré ou sortir du Collider.
Merci encore à tout ceux qui m'ont aidé.
Cordialement, LjDelire