Ordinateurs

Comment ajouter et supprimer des composants dans Unity

Matt Bird écrit toutes sortes de bêtises, mais il aime écrire des tutoriels pour Unity.

Les composants sont la pierre angulaire de vos GameObjects dans Unity. L’ajout de composants transforme un rien vide d’un objet en un membre mobile, pensant et réactif de votre jeu. Cet article explorera comment vous pouvez à la fois ajouter des composants à vos GameObjects et les supprimer dans et hors de l’exécution.

Ajout et suppression de composants dans l’inspecteur

Le moyen simple d’ajouter ou de supprimer des composants d’un GameObject est via l’inspecteur. Créez un nouveau GameObject et regardez l’inspecteur sur le côté droit de l’écran. Vous verrez quelque chose comme ceci :

Captures d'écran prises par moi-même.  Unity détenu et développé par Unity Technologies.

Captures d’écran prises par moi-même. Unity détenu et développé par Unity Technologies.

Sprite Renderer et Animator sont tous deux des composants de ce GameObject, et si vous le souhaitez, vous pouvez les activer ou les désactiver en cliquant sur les coches dans le coin supérieur gauche du composant. Vous pouvez ajouter d’autres composants en cliquant sur le bouton « Ajouter un composant » en bas de cette fenêtre. Cela ouvrira une liste de composants que vous pourrez explorer et rechercher à votre guise. Notez que les scripts personnalisés sont également considérés comme des composants et apparaîtront dans cette liste.

C’est généralement une bonne idée de désactiver les composants que vous ne voulez plus utiliser en cliquant sur la coche. Cela préservera toutes les valeurs que vous avez entrées au cas où vous changeriez d’avis plus tard. Si vous savez que vous n’utiliserez plus ce composant, vous pouvez soit cliquer avec le bouton droit sur le nom du composant, soit cliquer sur l’icône en forme de rouage dans le coin supérieur droit du composant pour ouvrir un menu. Cliquez sur Supprimer le composant.

A lire aussi :  Comment réparer une carte de circuit imprimé (PCB) endommagée

Ajout et suppression de composants pendant l’exécution

L’utilisation de l’inspecteur est une rue facile pour les composants. Les ajouter ou les supprimer pendant l’exécution est un peu plus délicat, mais ce n’est toujours pas si difficile et ne nécessite que quelques extraits de code.

Faites défiler pour continuer

Nous allons commencer par ajouter un composant. Disons que vous avez un GameObject qui passe d’intangible à nécessitant un collisionneur. Vous utiliseriez le morceau de script suivant pour lui donner un collisionneur :

 if (Input.GetKeyDown(KeyCode.U))
        {
			componentObject.AddComponent();
        }

componentObject est le GameObject et BoxCollider2D est le type de composant que vous souhaitez ajouter. Ce code ajoutera instantanément un BoxCollider2D au componentObject lorsque la touche U est enfoncée, et si componentObject est proche d’un autre objet avec un collisionneur, ils interagiraient immédiatement.

Il convient de noter que vous pouvez également manipuler les valeurs du nouveau Collider dès le départ. Définissez-le simplement sur une variable, comme ceci :

 if (Input.GetKeyDown(KeyCode.U))
        {
            BoxCollider2D exampleCollider = componentObject.AddComponent();
            exampleCollider.isTrigger = true;
        }

Ici, le nouveau BoxCollider2D est identifié comme exampleCollider, et après sa création, le composant est défini comme un déclencheur. Vous pouvez également modifier son décalage, sa taille, son rayon de bord, etc. Tout attribut d’un composant qui peut être défini via l’inspecteur peut également être défini dans le code.

Il est important de noter que vous pouvez ajouter plusieurs itérations de quelques Composants. Les collisionneurs en sont un parfait exemple. Les autres composants, tels que les animateurs, ne peuvent pas être dupliqués. Si vous devez ajouter plusieurs du même composant, il est judicieux de stocker leurs valeurs dans une liste ou un tableau, ou à tout le moins de les affecter à des variables.

L’ajout d’un composant est assez simple. Et si on enlevait un composant ? C’est encore plus facile. Il n’y a pas de code ‘RemoveComponent’ ; cependant, vous venez de détruire le composant, comme ceci :

if (Input.GetKeyDown(KeyCode.V))
        {           
            Destroy(componentObject.GetComponent());
        }

‘GetComponent’ est la commande généralement utilisée pour manipuler les valeurs du composant, et dans ce cas, nous l’utilisons pour vérifier que le GameObject a bien ce composant attaché. Si c’est le cas, le composant est supprimé lorsque l’utilisateur appuie sur la touche V.

Ce contenu est exact et fidèle au meilleur de la connaissance de l’auteur et ne vise pas à remplacer les conseils formels et individualisés d’un professionnel qualifié.

Bouton retour en haut de la page