Obtenir un composant
Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 44 sur 85.
Un GameObject est un conteneur de composants : un Transform, un MeshRenderer qui l’affiche, un collider, vos scripts. GetComponent<Renderer>() renvoie le composant de ce type présent sur le même objet, et votre script peut ainsi modifier le comportement de ce composant. transform est un raccourci prêt à l’emploi pour le Transform ; vous devez récupérer vous-même tous les autres composants.
Ce cube devient rouge lorsque vous appuyez sur Espace. Il récupère son Renderer une seule fois, dans Start(), et le conserve dans un champ : GetComponent recherche les composants de l’objet chaque fois qu’il est appelé, et le résultat ne change pas.
Renderer rend;
void Start()
{
rend = GetComponent<Renderer>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rend.material.color = Color.red;
}
}rend.material donne à cet objet sa propre copie du matériau la première fois que vous l’utilisez, afin que les autres objets qui partageaient le matériau conservent leur couleur. Unity nomme certaines couleurs pour vous, comme Color.red, Color.green, Color.blue, Color.yellow et Color.gray ; new Color(r, g, b) permet de créer n’importe quelle autre couleur, chaque composante allant de 0 à 1.
Défi
MoyenChaque clic fait avancer le feu de signalisation : rouge, jaune, vert, puis de nouveau rouge.
- Ajoute un champ
Renderer rend;et définis-le dansStart()avecGetComponent<Renderer>(). - Lors de
Input.GetMouseButtonDown(0), ajoute 1 à un champint stepet remets-le à 0 lorsqu’il atteint 3. - Définis
rend.material.colorsurColor.red,Color.yellowouColor.greenpour les valeurs de step 0, 1 ou 2.
Appuie sur « Jouer » et clique dans le jeu : le feu change de couleur. Puis appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// À chaque clic : rouge, puis jaune, puis vert, puis de nouveau rouge
}
}
Toutes les leçons de Les bases du scripting dans Unity
1Les bases de C# dans Unity
Bonjour, UnityVariablesLes nombres décimaux ont besoin d’un fDu texte dans la consoleDes variables qui mémorisentSi et sinonComparer des nombresRécapitulatif : le collecteur de pièces7Boucles et méthodes
Répéter avec forBoucles imbriquéesÉcrire une méthodeMéthodes qui renvoient une réponseTableauxRécapitulatif : escalier10Rechercher des objets
Rechercher par nomTagsRechercher par typeLes références plutôt que la rechercheLe null de UnityRécapitulatif : la pièce la plus proche13Projet : Éviter les blocs
Le coureurDes blocs tombent du ciel2Mettez-le en mouvement
Placez le cubeDéplacez-le à chaque frameTournez chaque secondeDirigez avec les touchesRécapitulatif : pilotez le cube5Vecteurs
Additionner des vecteursDirectionsEspace local et espace globalVitesse diagonaleDistance entre des objetsVector3 est une structureRécapitulatif : pilote de drone8GameObjects et composants
Références dans l’InspectorObtenir un composantComposants manquantsAjouter un composantRequireComponentAfficher et masquerRécapitulatif : interrupteur3L’inspecteur
Champs de l’inspecteurSerializeFieldFlottants et MathfAttributs de l’inspecteurRécapitulatif : ascenseur6Transformations et hiérarchie
Parents et enfantsHissez le drapeauÉchelleRegarder les objetsSe déplacer vers un pointRécapitulatif : la lune en orbite9Projet : Attrape l’étoile
Le receveurUne étoile filanteEntraînez-vous par vous-même : Playground Unity