2017-09-06 1 views
1

Dans l'onglet inspecteur, je vois des variables publiques, des cases à cocher et des boutons dans le cadre d'un script complexe.Comment "appuyer" sur un bouton dans l'onglet inspecteur du script?

Comment puis-je utiliser C# pour "appuyer" sur un bouton/une case à cocher ou définir une valeur dans une variable de l'onglet inspecteur, sans trouver et appeler les fonctions correspondantes dans ce script?

Donc je veux juste déclencher le même effet qui se produirait si j'appuyais manuellement sur un bouton dans l'onglet inspecteur.

+1

Pouvez-vous être plus précis? Voulez-vous dire quelque chose comme ... si vous voulez vérifier la boîte isTrigger dans un collider2D vous feriez 'GetComponent.Collider2D.isTrigger = true;' – ryeMoss

+0

@ryemoss Merci, mais je veux dire un script personnalisé. Dans l'onglet inspecteur, je peux voir les champs de saisie, les cases à cocher et les boutons. Puis-je "cliquer" sur le bouton de script personnalisé dans l'inspecteur à partir d'un autre script? Ou le seul moyen est d'appeler la même fonction, qui sera appelée si je vais cliquer manuellement sur la case à cocher? – Rumata

+0

@Rumata Correct, vous devrez appeler la méthode appelée par les boutons. Par exemple, disons que votre bouton est 'Generate Terrain' - que le corps de la méthode des boutons appelle à son tour 'GenerateTerrain(); CleanUp(); '- votre script devrait alors appeler cette séquence d'événements. Pour les choses comme les cases à cocher, il s'agit de définir la valeur d'une propriété, etc. – DeeKayy90

Répondre

0
public Button myButton; 

myButton.onClick.Invoke(); 

Est-ce ce que vous cherchez?

+0

Merci, mais pas exactement. Il y a un script personnalisé, et dans l'onglet inspecteur, je vois les champs de saisie publics, les boutons et les cases à cocher. Peut-on, par exemple, cliquer sur une case dans l'onglet de l'innspector en utilisant C#? Ou le seul moyen est de savoir quelles fonctions sont appelées lorsque je clique sur la case à cocher, et appelez les mêmes fonctions? – Rumata

0

L'inspecteur vous montre les composants d'un objet de jeu, si vous créez un GameObject vide. Vous verrez le composant de transformation auquel vous pouvez ajouter une référence à votre script sur un autre GameObject comme public GameObject nameYouWanted puis un emplacement apparaîtra dans l'inspecteur de l'objet GameObject qui est attaché à celui qui a nommé nameYouWanted et vous pouvez ensuite déposer l'objet de jeu que vous avez créé là-bas.
jusqu'ici vous venez de créer un script sur un autre GameObject et ensuite créé un GameObject vide, dans cette étape, vous pouvez accéder au composant de transformation de Second GameObject en écrivant simplement someVariable = nameYouWanted.transform.position dans le début ou la fonction de mise à jour dans votre script! COMME CELA!
simple que, vous pouvez accéder à composante caméra de mainCamera en écrivant public Camera mainCamera et d'accéder ensuite composants de l'appareil

GARDEZ JUSTE À L'ESPRIT QUE:
en cas de:
public GameObject varName

public est le niveau d'accessibilité des variables
GameObject est le type de composant
v arName est évident est le nom de la variable


Voici donc la partie la plus délicate pour les débutants:
par exemple j'ai cet composants sur mon appareil photo

Components

Comment puis-je accéder par exemple les variables LensDistortionBlur? ou un autre composant de givre?
RÉPONSE EST: Il vous suffit d'ajouter une référence à cela dans votre script comme

public LensDistortionBlur LensDistortionBlurEffect; 

cette image est liée à pépin effet:
enter image description here

vous voyez comment monodevelop suggère variables de composants à utiliser ???Puis dans l'inspecteur ajoutez le GameObject cible dans cet emplacement (qui contient LensDistortionBlur), voici la bonne chose: Juste parce que vous avez spécifié le LensDistortionBlur comme type de composant, le script demande juste à partir de cet objet de jeu le composant LensDistortionBlur et ne l'utilise pas les, puis utilisez qu'à l'intérieur d'une fonction que vous voulez, chose importante dans c'est composant TYPE qui est LensDistortionBlur, Oui, vous devez utiliser le nom du composant que vous souhaitez accéder, Plus d'info est Here

DANS VOTRE CAS
Ces booléens et variables que vous avez mentionnés peuvent être accédés par la solution expliquée ci-dessus!

+0

Merci beaucoup, c'est une explication très utile! Cependant, ma question est la suivante: y a-t-il une alternative à cette méthode? Imaginez, il y a un bouton, et il appellera certaines fonctions si je clique dessus. Donc, si je vais juste cliquer manuellement dans l'inspecteur - il appellera lui-même certaines fonctions, sans que je doive faire autre chose que de cliquer dessus. Donc, ma question est - puis-je simplement cliquer sur le bouton en utilisant C#? Puis-je simplement déclencher un événement "clic" pour ce bouton, rien de plus, afin que le bouton appelle ses propres fonctions, sans que je doive les appeler? – Rumata

+0

Vous savez quoi? ce bouton que vous dites fonctionne une fonction, non? Donc c'est simple. vous pouvez faire référence à ce script et ensuite trouver cette fonction par référence, puis exécutez-le! –