---
title: UnityEvent
slug: world-sdk-guide-fr/unityevent
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

Unity fournit des UnityEvents pour faciliter l'utilisation des événements et des délégués C# par les utilisateurs.

Les UnityEvents sont un moyen de transmettre des arguments entre différents objets ou de transmettre un message lorsque certaines conditions sont remplies.

Pour utiliser UnityEvent dans ZEPETOScript, vous devez le déclarer dans le format suivant.

Tout d'abord, ajoutez une commande d'importation comme indiqué ci-dessous pour utiliser la classe UnityEvent.

:::CodeblockTabs
TypeScript

```typescript
import { UnityEvent } from 'UnityEngine.Events';
```
:::

Voir un exemple de code de couplage pour un UnityEvent.

:::CodeblockTabs
Event

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { UnityEvent } from 'UnityEngine.Events';
import { Button } from 'UnityEngine.UI';
  
export default class Event extends ZepetoScriptBehaviour {
  
    public btn : Button;
    private mEvent: UnityEvent;
  
    Start() {
        // Crée une nouvelle instance de UnityEvent et l'assigne à mEvent.
        this.mEvent = new UnityEvent();
        // Ajoute un nouvel écouteur à mEvent. Cet écouteur exécute la méthode Ping lorsque mEvent est appelé.
        this.mEvent.AddListener(() => this.Ping());
 
        // Vérifie si un bouton est cliqué et si mEvent n'est pas nul.
        this.btn.onClick.AddListener(() => {
            if (this.mEvent != null) {
                // Si la condition ci-dessus est vraie, invoque mEvent.
                this.mEvent.Invoke();
            }
        });
    }
  
    Ping() {
        console.log('Ping');
    }
}
```
:::



- Description du script
  - Dans l'exemple ci-dessus, un UnityEvent nommé ‘mEvent’ est invoqué chaque fois qu'un bouton est pressé, et il exécute la méthode ‘Ping’ lorsque ‘mEvent’ est appelé.
  - Par conséquent, chaque fois que le bouton est pressé, un message 'Ping' est imprimé dans la console.



Si l'événement auquel vous êtes sur le point de vous connecter a des paramètres, vous devez ajouter une commande d'importation UnityEvent comme indiqué ci-dessous.

:::CodeblockTabs
TypeScript

```typescript
import { UnityEvent$1 } from 'UnityEngine.Events';
```
:::

:::hint{type="success"}
👍 **Conseils**

- UnityEvent$1 est la version générique de UnityEvent
- Par exemple, si vous souhaitez créer un événement qui accepte une valeur entière, vous pouvez utiliser `UnityEvent$1<int>`
- Veuillez noter que le type de paramètre de UnityEvent$1 suit C#
:::



Un exemple de code lors de l'utilisation de UnityEvent$1 avec des paramètres est le suivant.

:::CodeblockTabs
Event

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { UnityEvent$1 } from 'UnityEngine.Events';
import { Input } from 'UnityEngine';

export default class Event extends ZepetoScriptBehaviour {

    private mEventInt: UnityEvent$1<int>;
    private countNum: number;

    Start() {
        this.mEventInt = new UnityEvent$1<int>();
        this.mEventInt.AddListener(num => this.Count(num));
        this.countNum = 0;
    }

    Update() {
        if ((Input.anyKeyDown) && (this.mEventInt != null)) {
            this.mEventInt.Invoke(this.countNum);

            ++this.countNum;
            if (this.countNum > 100) {
                this.countNum = 0;
            }
        }
    }

    Count(num) {
        console.log(`Count : ${num}`);
    }
}
```
:::



Vous pouvez en apprendre davantage sur les UnityEvents en cliquant sur le lien ci-dessous.

:::hint{type="info"}
**📘 UnityEvents**
[https://docs.unity3d.com/kr/530/ScriptReference/Events.UnityEvent.html](https://docs.unity3d.com/kr/530/ScriptReference/Events.UnityEvent.html)
:::

