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.

Code : Tout sélectionner

Destroy(other.gameObject);

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