Unity calls other script function methods

1. Singleton instance

2. Static public function, called with class name. function name ()

public class Test2 : MonoBehaviour
{
    public static void HH()
    {
        print("hhhhh");
    }
    public static int Add(int x,int y)
    {
        print(x + y);
        return x + y;
    }
}
========================================================
//调用
public class Test3 : MonoBehaviour
{
    void Start()
    {
        Test2.Add(5, 6);
        Test2.HH();
    }
}

3. GameObject.Find search object, then GetComponent script and method

public class Test2 : MonoBehaviour
{
       public void Getid()
    {

    }
}

=======================================================
//调用
GameObject.Find("写挂在Test2脚本的对象名称").GetComponent<Test2>().Getid();

4. GameObject.Find search object, then SendMessage (function name)

public class Test2 : MonoBehaviour
{
    public void Getid()
    {
        print("Getid");
    }
}

================================================================
//调用
GameObject.Find("挂载到有Getid方法的对象名称").SendMessage("Getid", SendMessageOptions.DontRequireReceiver);


//SendMessageOptions.RequireReceiver //如果没有找到相应函数,会报错(默认是这个状态)
//SendMessageOptions.DontRequireReceiver //即使没有找到相应函数,也不会报错,自动忽略

//SendMessage仅向指定对象的所有脚本推送消息
//SendMessageUpwards向指定对象和它的所有父物体推送消息
//BroadcastMessage向指定对象和它的所有子物体推送消息

5. The simplest method is public script name name

 

 transfer

 

 

Guess you like

Origin blog.csdn.net/m0_73841296/article/details/131195143