Partage
  • Partager sur Facebook
  • Partager sur Twitter

Unity C# evenement

    2 octobre 2022 à 16:17:26

    Bonjour à tous je voulais savoir si il était possible de générer un event au Start sur unity. J'aimerai que quand je créer une entity, un event me soit notifié et je bloque un peu :(

    public delegate void EntityEvent(Entity e);
    public event EntityEvent OnSpawn;
    protected void Start()
    {
        OnSpawn.Invoke(this);
    }

     Edit --

    J'ai deux autres events et eux fonctionne dans le Start() :colere:

    // Entity event
    public delegate void EntityEvent(Entity e);
    public event EntityEvent OnSpawn;
    public event EntityEvent OnTakeDamage;
    public event EntityEvent OnDead;
    // Start is called before the first frame update
    protected void Start()
    {
        this.OnTakeDamage.Invoke(this);
        this.OnDead.Invoke(this);
        this.OnSpawn.Invoke(this); // ligne 69
    }
    NullReferenceException: Object reference not set to an instance of an object
    Entity.Start () (at Assets/Scripts/Entity/Entity.cs:69)
    

    -
    Edité par RehArk 2 octobre 2022 à 17:49:55

    • Partager sur Facebook
    • Partager sur Twitter

    Créer une procédure qui s'appelle elle même, procédurception !

      3 octobre 2022 à 11:48:13

      Vous avez pris le temps d'initialiser les champs "OnTakeDamage" et "OnDead" (les event sont des champs comme les autres), soit dans le constructeur, le designer graphique d'Unity, dans des sections "préliminaire" au start, etc...

      Vous ne l'avais pas fait pour "OnSpawn".

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        7 octobre 2022 à 18:58:01

        Hmmm... je pensais qu'il s'initialisais tout seul, puisque je n'ai pas eu besoin pour les autres x(

        Comment je peux initialiser un delegate par contre ? car il n'ont pas l'air d'avoir de constructeur 

        • Partager sur Facebook
        • Partager sur Twitter

        Créer une procédure qui s'appelle elle même, procédurception !

          8 octobre 2022 à 0:58:49

          Un delegate, c'est type, pas un objet.

          Regardez dans le Designer Graphique, pas dans le code.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

          Unity C# evenement

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown