Ajouter un composant
Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 46 sur 85.
gameObject.AddComponent<T>() ajoute un nouveau composant de type T à l’objet pendant l’exécution du jeu et le renvoie afin que tu puisses le configurer dans les lignes suivantes. Il appartient au GameObject, auquel un script accède par l’intermédiaire de gameObject. Ce feu de camp s’éclaire d’une lumière orange chaleureuse au démarrage du jeu :
void Start()
{
Light glow = gameObject.AddComponent<Light>();
glow.color = new Color(1f, 0.5f, 0f);
glow.intensity = 2f;
}Un composant ajouté de cette façon reste présent pendant l’exécution du jeu. Arrête « Jouer » et l’objet revient à l’état enregistré dans la scène, sans Light. Tes propres scripts sont également des composants : gameObject.AddComponent<Spinner>() ajoute un Spinner qui commence à s’exécuter comme n’importe quel autre script.
La plupart des composants peuvent être ajoutés plusieurs fois, mais certains ne le peuvent pas : un objet ne peut contenir qu’un Rigidbody au maximum, et en demander un deuxième affiche plutôt un avertissement dans la Console : Can't add component 'Rigidbody'. Le code susceptible de s’exécuter plusieurs fois vérifie si l’objet possède déjà le composant avant de l’ajouter.
Défi
MoyenL’espace secoue le palmier et la noix de coco tombe.
- Dans
Update(), lors deInput.GetKeyDown(KeyCode.Space), ajoute un Rigidbody avecgameObject.AddComponent<Rigidbody>(). - Ajoute-le uniquement si la noix de coco n’en a pas :
!TryGetComponent(out Rigidbody rb). Un deuxième appui sur Espace n’ajoute pas de deuxième Rigidbody.
Appuie sur « Jouer » et sur Espace : la noix de coco tombe dans le sable. Puis, clique sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class CoconutDrop : MonoBehaviour
{
void Update()
{
// Space : ajouter un Rigidbody si la noix de coco n’en a pas encore
}
}
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