Comment appeler une fonction qui est dans un autre script C# sur Unity ?

Quand on développe un jeu vidéo, on doit très souvent faire communiquer les objets du jeu entre eux.

Sur Unity, il y a beaucoup de façon d’arriver à nos fins. Si vous êtes débutant, vous pouvez commencer par les méthodes ci-dessous qui sont les plus simples à appréhender.

Le ScriptA : c’est l’autre script

Dans cet exemple, le ScriptA possède uniquement une fonction Test()

using UnityEngine;

public class ScriptA : MonoBehaviour
{
    public void Test()
    {
        print("Fonction Test");
    }
}

On se trouve dans le ScriptB et on aimerait appeler la fonction Test() qui se trouve dans le ScriptA.

Première méthode : par l’éditeur de Unity

public class ScriptB : MonoBehaviour
{
    //Dans l'éditeur Unity :
    //Faites glisser le GameObject qui contient le ScriptA dans l'inspecteur, avant de lancer le jeu.
    public ScriptA autreScriptDansUnAutreGameObject;

    void Start()
    {
        //On peut maintenant atteindre la fonction Test() de ScriptA
        autreScriptDansUnAutreGameObject.Test();
    }

}

Deuxième méthode : cherche le script automatiquement dans la scène

public class ScriptB : MonoBehaviour
{
    
    public ScriptA autreScriptDansUnAutreGameObject;

    void Start()
    {
        //Trouve automatiquement un GameObject qui contient le ScriptA
        autreScriptDansUnAutreGameObject = GameObject.FindObjectOfType(typeof(ScriptA)) as ScriptA;


        //On peut maintenant atteindre la fonction Test() de ScriptA
        autreScriptDansUnAutreGameObject.Test();
    }

}

Recevez les dernières actus

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Laisser un commentaire

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

Retour en haut