Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

Unity AddComponent Presentation

Unity AddComponent sur vos GameObjects

Sur Unity, la fonction « AddComponent » simplifie le processus de gestion des GameObject. En un simple clic dans l’inspecteur de l’éditeur, les utilisateurs peuvent facilement ajouter divers composants à leurs objets Unity.

Table des matières

Ajouter un composant dynamiquement

La fonction `AddComponent` vous permet d’ajouter un composant à un GameObject dynamiquement.

private void Add()
{
  var rigidbody2d = gameObject.AddComponent<Rigidbody2D>();

  // return Component, you can cast it
  var rigidbody = gameObject.AddComponent(typeof(Rigidbody2D));
}

Ajouter un composant dans l’éditeur

Vous pouvez ajouter directement un composant à votre GameObject dans l’éditeur Unity en suivant ces étapes :

  1. Sélectionnez votre gameObject dans la scène.
  2. Cliquez sur le bouton « Ajouter un composant » dans l’inspecteur de votre GameObject.
  3. Choisissez le composant que vous souhaitez ajouter.

Unity Ajouter un composant Éditeur

Ajouter un script personnalisé comme composant

De plus, vous pouvez ajouter votre propre script en tant que composant. Pour ce faire, votre script doit hériter de la classe UnityEngine.Component. Dans la plupart des cas, vos scripts hériteront de la classe MonoBehaviour, qui elle-même hérite de Component :

using UnityEngine;

public class MyMonoBehaviour : MonoBehaviour
{

}

public class OtherMonoBehaviour : MonoBehaviour
{
    private void Awake()
    {
        gameObject.AddComponent<MyMonoBehaviour>();
    }
}

Ajouter un composant avec des paramètres

`AddComponent` ne permet pas nativement de passer des paramètres. Il est préférable de créer une fonction séparée, par exemple, « SetParameters, » à appeler après la création du composant.

using UnityEngine;

public class TorsoEquip : MonoBehaviour
{
    public int Defense { get; private set; }
    public int Resiliance { get; private set; }

    public void SetParameters(int defense, int resiliance)
    {
        Defense = defense;
        Resiliance = resiliance;
    }
}
private void AddComponentWithParamters()
{
	var torsoEqui = gameObject.AddComponent<TorsoEquip>();
	torsoEqui.SetParameters(20, 30);
}

Unity stonks
Pour rendre le code plus réutilisable, il peut être plus judicieux de passer un objet de configuration au lieu de passer des paramètres un par un. Cet objet de configuration peut être une classe, une structure ou même un ScriptableObject, selon vos besoins :

using UnityEngine;

public class TorsoEquip : MonoBehaviour
{
    public class EquipementStat
    {
        public int Defense { get; set; }
        public int Resiliance { get; set; }
    }

    public EquipementStat EquipementConfiguration { get; private set; }

    public void AddConfiguration(EquipementStat equipementConfiguration)
    {
        EquipementConfiguration = equipementConfiguration;

        // maintenant vous pouvez appeler
        // EquipementConfiguration.Defense
        // Ou EquipementConfiguration.Resiliance
    }
}

Attribut RequireComponent

L’attribut RequireComponent vous permet d’éviter les erreurs de configuration lors de l’ajout d’un script. Le composant requis sera ajouté simultanément, mais notez que cela ne fonctionne que dans l’éditeur.
Cet attribut est utilisé dans « TextMeshProUGUI », pour ajouter un RectTransform et un CanvasRenderer en même temps.

textmeshpro requireComponentCode source TextMeshProUGUI

Prenons un exemple : Supposons que nous voulons toujours que notre classe « Ball » ait un Rigidbody2D :

using UnityEngine;

[RequireComponent(typeof(Rigidbody2D))]
public class Ball : MonoBehaviour
{
    private Rigidbody2D _rigidbody2D;

    private void Awake()
    {
        _rigidbody2D = GetComponent<Rigidbody2D>();
    }
}

Pour conclure, fonction « AddComponent » d’Unity fait partie des fonctionnalités de base vous permettant de customiser vos GameObjects.
Merci d’avoir parcouru ce sujet avec moi – bon codage !

Ressources utiles :

Consultez mes autres articles sur Unity :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *