我最终试图展示活跃的玩家,但我在设置文本框的价值方面遇到了麻烦。
我的理解是,一旦玩家加入,我需要使用syncvars来显示每个客户端上的所有玩家名称。首先,我试着这个......
[SyncVar(hook = "OnPlayerName")]
public string name;
void OnPlayerName(string newPlayerName)
{
playerlist.text = name;
}
public override void OnStartClient()
{
name = "terrance";
}
运行时,文本框为空。如果我设置没有syncvars的文本,它可以工作。当然,只有在没有syncvars的情况下才能看到本地客户端的更改。
解决方案: 参数newPlayerName需要匹配变量名称,所以在这种情况下" name" ...
void OnPlayerName(string name)
答案 0 :(得分:2)
你正在把它挂钩到一个不存在的函数,
“OnPlayName”
应该是
[SyncVar(hook = "OnPlayerName")]
public string name;