Page 1 sur 1

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

Publié : 02 Mars 2019 15:56
par Oz123
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 ?.

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

Publié : 02 Mars 2019 16:24
par Max
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.

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

Publié : 04 Mars 2019 21:35
par Oz123
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.

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

Publié : 04 Mars 2019 22:59
par Max
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.