[英]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.