Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不破坏游戏对象的情况下调用方法或发送回调_C#_Unity3d - Fatal编程技术网

C# 在不破坏游戏对象的情况下调用方法或发送回调

C# 在不破坏游戏对象的情况下调用方法或发送回调,c#,unity3d,C#,Unity3d,我想在两个MonoBehavior类之间发送回调。我选择了singleton这样做。下面是我的代码 public class Main : MonoBehaviour { private static Main instance = null; public GameObject player; private Main() { } public static Main Instance { get {

我想在两个MonoBehavior类之间发送回调。我选择了singleton这样做。下面是我的代码

public class Main : MonoBehaviour
{
    private static Main instance = null;
    public GameObject player;
    private Main()
    {
    }

    public static Main Instance
    {
        get
        {
            if (instance==null)
            {
                instance = new Main();
            }
            return instance;
        }
    }

    public void onReceive()
    {
        //hide the gameobject on receiving notification.
        player.SetActive(true);
    }
}
我使用以下代码从另一个MonoBehavior类调用
onReceive

Main.Instance.onReceive();

当然,我已经将玩家连接到unity游戏对象。不幸的是,当我使用singleton时,它是空的。如何将信息传递给Monobhavour类而不使游戏对象被销毁?

传递详细信息不会杀死游戏对象,除非您写入以销毁它,但即使调用activate方法,它也不会隐藏游戏对象:(我试图通过按钮隐藏播放器,我能做到。但我不能通过singleton做到这一点。)(可能是因为播放器没有价值?没有价值?你能解释一下吗?