繁体   English   中英

Unity多人全局变量

[英]Unity multiplayer global variable

我有附加到播放器预制板上的Player(NetworkBehaviour)脚本,该脚本在客户端加入时生成,而Global(MonoBehaviour)脚本位于场景内

在全局脚本中,我有这个:

class Global : MonoBehaviour
{
    public static int gloablInteger;

    void Start()
    {
         globalInteger = 0;
    }
}

在播放器脚本中,我有以下内容:

class Player : Networkbehaviour
{
    public void Start()
    {
        Global.globalInteger++;
    }
}

我将更新功能设置为Debug.Log(globalInteger) ,它显示0 ,然后第一个客户端(主机)加入,它显示1 ,然后第二个客户端加入,它仍然显示1而不是2 为什么会这样呢?

这个对我有用。

这是我的剧本

客户

void Start () 
{
    globalS.g++;
    Debug.Log(globalS.g); //1,2,3,4,5
}

全球

public static int g = 0;

我认为您可能会重置globalInteger ,或者未以正确的方式调用Global.globalInteger ++ ,请注意,每个GameObject Start函数在运行时仅调用一次。

每次客户端加入时,它将Start()函数中的globalInteger重置为0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM