[DB-AL] Instancier un objet depuis un bouton une seule fois.

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
Oz123
Messages : 2
Inscription : 02 Mars 2019 15:45

[DB-AL] Instancier un objet depuis un bouton une seule fois.

Message par Oz123 » 02 Mars 2019 15:56

Bonjour,

Étant en train de réaliser une application en Réalité Augmenter, je bloque sur la partie programmation.

Mon problème est que je voudrais limité le nombre d'instanciation d'un objet à partir d'un bouton que j'ai créé.
Le bouton et le script servant à l'instanciation est créé et fonctionne, mais je voudrais qu'après avoir cliqué une seule fois sur ce bouton, il soit inutilisable, voir que le bouton devienne grisé.

voici mon code :

Code : Tout sélectionner

public class Spawn : MonoBehaviour {
public GameObject apparition;

	public void Instance ()
	{
	Instantiate( apparition, new Vector3(0f, 0f, 0f), Quaternion.identity);
	}
}
A savoir que je l'ais appliqué à un empty et que j'ai ensuite insérer l'objet que je veut instancier dans l'inspector.

En vous remerciant par avance,
cordialement kévin.
.
 ! Message de : Max
Utilisez les balises code SVP
Merci de lire la Charte et sa FAQ, en particulier Comment insérer un script dans un messages ?.

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

Re: [DB-AL] Instancier un objet depuis un bouton une seule fois.

Message par Max » 02 Mars 2019 16:24

Bonjour,

Il existe plusieurs solutions. Une d'entre elle consiste à désactiver par exemple le script d'instanciation (celui que tu fournis plus haut). Tu peux aussi employer un boolean, qui servirait de flag/test et dont l'état changerait au moment de l'instanciation.
Après tu peux rajouter certains effets comme tu le souhaites en changeant la couleur (ou le material) de ton bouton aussi pour signifier la prise en compte de l'action.
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

Oz123
Messages : 2
Inscription : 02 Mars 2019 15:45

Re: [DB-AL] Instancier un objet depuis un bouton une seule fois.

Message par Oz123 » 04 Mars 2019 21:35

Re bonjour,

excusez-moi d'avoir mis du temps à vous répondre j'ai eu du mal à retrouver mon mot de passe.

J'ai fouillé avec le "boolean, qui servirait de flag/test" mais je n'arrive pas à comprendre la logique.
Comment l'insérer, comment fonctionne t'il ? c'est très flou pour moi.
J'ai fais également plusieurs test avec la boucle = for, while, do while, mais sans succès.

Je ne sais pas s'il est possible d'être plus explicite pour un novice des novices !
En tout cas merci énormément pour votre aide ainsi et que pour votre temps.

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

Re: [DB-AL] Instancier un objet depuis un bouton une seule fois.

Message par Max » 04 Mars 2019 22:59

Bonsoir,

je crois surtout que tu devrais commencer par apprendre les bases. Car là tu vas surtout au devant de bonnes galères pour des trucs qui sont la base des bases, et donc forcément tu vas devoir t'appuyer sur la dispo d'autre personnes.

Pour les boolean, il s'agit d'un type de donnée (bool en C#) qui ne peut prendre que deux états: vrai (true) ou faux (false). On s'en sert par exemple comme flag, qui par un changement d'état autorise ou non une action. Je te laisse regarder le lien fournis, tu peux aussi lire ce genre d'article du site OpenClassRoom (et le reste).

Après, je parlais de désactiver le script qui occupais de l'instanciation, là on part sur l'utilisation et la compréhension d'Unity et de ses composants. Ton script se trouvant sur un GameObject, il est considéré comme un component.
Tu peux regarder du coté de GetComponent(), ainsi que ce genre de tuto traitant de l'activation/désactivation d'un component.
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

Répondre

Revenir vers « (C#) CSharp »