Bonjour !
Je suis débutant sur Unity et je voudrais créer quelques choses de simple, Activer et désactiver un GameObject avec un même bouton, mais je n'y arrive pas... J'ai essayé plusieurs choses !
Activer désactiver GameObject
Re: Activer désactiver GameObject
Bonjour,
Il y a pas mal d'exemple sur le net.
Je te mets deux liens officiels:
https://unity3d.com/fr/learn/tutorials/ ... ameobjects
https://docs.unity3d.com/2018.1/Documen ... ctive.html
Un lien youtube:
https://www.youtube.com/watch?v=OUlXD2bf8FU
Dans la fonction Public appelée par ton bouton, tu peux vérifier l'état de ton GameObject. Et donc inverser son état grâce à un bool.
Le script est à mettre dans ton GameObject. Et tu dois drag and drop le GameObject sur le Bouton (La fonction est en public pour pouvoir y avoir accès de l'extérieur).
La dernière ligne de script (celle en commentaire), peut remplacer toutes les autres avant mais si tu ne la comprends pas ne l'utilise pas.
Ce que tu demandes est assez basique et facile à trouver avec un minimum de recherche.
Si tu es totalement débutant essaye de faire un apprentissage pas-à-pas..
Il y a pas mal d'exemple sur le net.
Je te mets deux liens officiels:
https://unity3d.com/fr/learn/tutorials/ ... ameobjects
https://docs.unity3d.com/2018.1/Documen ... ctive.html
Un lien youtube:
https://www.youtube.com/watch?v=OUlXD2bf8FU
Dans la fonction Public appelée par ton bouton, tu peux vérifier l'état de ton GameObject. Et donc inverser son état grâce à un bool.
Le script est à mettre dans ton GameObject. Et tu dois drag and drop le GameObject sur le Bouton (La fonction est en public pour pouvoir y avoir accès de l'extérieur).
Code : Tout sélectionner
public void ChangeState()
{
if (true == gameObject.activeInHierarchy)
{
gameObject.SetActive(false);
}
else if (false == gameObject.activeInHierarchy)
{
gameObject.SetActive(true);
}
// gameObject.SetActive(!gameObject.activeInHierarchy);
}
Ce que tu demandes est assez basique et facile à trouver avec un minimum de recherche.
Si tu es totalement débutant essaye de faire un apprentissage pas-à-pas..
- boubouk50
- ModoGenereux
- Messages : 6214
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Activer désactiver GameObject
Je rebondis juste sur le code de DevAmat qui a bien détaillé l'algo.
Un if/else est une condition qui, si elle est vérifiée, entre dans la première partie, la deuxième sinon:Ainsi, le else est la condition inverse du if. Il devient alors redondant de le préciser comme dans l'exemple de DevAmat. Cela donnerait:
C'est juste l'intermédiaire entre le code et la ligne en commentaire qui raccourcit tout.
Un if/else est une condition qui, si elle est vérifiée, entre dans la première partie, la deuxième sinon:
Code : Tout sélectionner
if (mon gameobject est-il actif?) {
//oui -> Alors ce bout va s'exécuter}
else {
//non -> Alors ce bout va s'exécuter}
Code : Tout sélectionner
public void ChangeState()
{
if (true == gameObject.activeInHierarchy) //Si l'objet est actif
{
gameObject.SetActive(false); //alors on le désactive
}
else //Sinon (donc il est inactif)
{
gameObject.SetActive(true); //alors on l'active
}
}
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Activer désactiver GameObject
Nickel,
Ca marche parfaitement, merci !
Ca marche parfaitement, merci !