[RESOLU}Destroy et Ui

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Ruril
Messages : 6
Inscription : 18 Avr 2018 03:02

[RESOLU}Destroy et Ui

Message par Ruril » 18 Avr 2018 13:04

Bonjour,
Je reviens avec deux petits problèmes, après promis je vous embête plus :)

Pour commencer le premier et le plus simple à expliquer, c'est un problème d'Ui, j'ai crée une box non rendu sur lequel j'ai appliqué un trigger et ce script

Code : Tout sélectionner

public class Texte : MonoBehaviour {

	public GameObject ui;
	// Use this for initialization
	void Start () {
		ui.SetActive (false);
	}
	
	// Update is called once per frame
	void OnTriggerStay (Collider other) 
	{
		ui.SetActive (true);
		}
	void OntriggerExit()
		{
		ui.SetActive(false);
	}
}
Il est censé marché lorsque le personnage entre dans le trigger et rester jusqu'à qu'il quitte le trigger ( c'est un texte qui apparait), le problème étant que lorsque le personnage quitte le trigger, le texte reste et ne disparait jamais. Je ne comprends pas pourquoi.


Le second soucie est un Destroy

j'ai réalisé des vagues de mob avec ce script

Code : Tout sélectionner

public class Spawn : MonoBehaviour {

    public GameObject mob;
    public float interval = 3.0f;
    public int vague = 0;
    public bool attente = false;

    void Start(){
        StartCoroutine ("PremVague");
    }

    IEnumerator PremVague(){
        yield return new WaitForSeconds (2.0f);
        Instantiate (mob, transform.position, Quaternion.identity);
        vague += 1;
        StartCoroutine ("ChangeVague");
    }

    IEnumerator DeuxVague () {
    yield return new WaitForSeconds (2.0f);
    Instantiate (mob, transform.position, Quaternion.identity);
    vague += 1;
    StartCoroutine ("ChangeVague");
}
    IEnumerator ChangeVague(){
    if (vague <=2) {
        StartCoroutine ("PremVague");
    }
if (vague >=3) {
    if (attente == false) {
        yield return new WaitForSeconds(7);
        attente = true;
        StartCoroutine ("DeuxVague");
    }

    else if (attente ==true){
        StartCoroutine ("DeuxVague");
    }
} 
Cela fonctionne bien, sauf que j'aimerai que les mob soit détruit lorsqu'une grenade explose sur eux grâce à ce destroy

Code : Tout sélectionner

public class Droide : MonoBehaviour {

    private void OnTriggerEnter (Collider other)
    {
        if (other.tag == "Dro"){
        
            Destroy(other.gameObject);
        }
    }
} 
Mais rien ne se passe les mob y sont insensible j'ai pourtant mis un collider sur le droide de base qui est utilisé comme spawner et un collider sur la grenade. J'ai ensuite appliquer le script destroy sur la grenade mais rien ne se passe, je ne sais pas pourquoi.

Si vous avez une idée, ce serait sympa :) !
 ! Message de : boubouk50
Merci d'encapsuler le code dans les balises Code
Dernière édition par Ruril le 19 Avr 2018 16:08, édité 1 fois.

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Destroy et Ui

Message par Max » 18 Avr 2018 18:17

Bonsoir,

Pour le premier problème, dans ton code, tu as une erreur au niveau de la casse sur le nom de ta fonction.
Ce n'est pas OntriggerExit mais OnTriggerExit.

Pour le second problème:
j'ai pourtant mis un collider sur le droide de base qui est utilisé comme spawner et un collider sur la grenade.
rappel de la doc pour ce qui est de OnTriggerEnter: Trigger events are only sent if one of the Colliders also has a Rigidbody attached.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Ruril
Messages : 6
Inscription : 18 Avr 2018 03:02

Re: Destroy et Ui

Message par Ruril » 19 Avr 2018 16:08

Je viens tout juste de trouver mes erreurs et c'était effectivement cela. Merci tout fonctionne nickel :)

Répondre

Revenir vers « (C#) CSharp »