Menu
CoddyTech

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.

challenge icon

Défi

Moyen

Chaque clic fait avancer le feu de signalisation : rouge, jaune, vert, puis de nouveau rouge.

  1. Ajoute un champ Renderer rend; et définis-le dans Start() avec GetComponent<Renderer>().
  2. Lors de Input.GetMouseButtonDown(0), ajoute 1 à un champ int step et remets-le à 0 lorsqu’il atteint 3.
  3. Définis rend.material.color sur Color.red, Color.yellow ou Color.green pour 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

Entraînez-vous par vous-même : Playground Unity