无法使用统一的syncvars设置文本

时间:2018-06-17 19:05:01

标签: c# unity3d unet

我最终试图展示活跃的玩家,但我在设置文本框的价值方面遇到了麻烦。

我的理解是,一旦玩家加入,我需要使用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)

1 个答案:

答案 0 :(得分:2)

你正在把它挂钩到一个不存在的函数,

  

“OnPlayName”

应该是

[SyncVar(hook = "OnPlayerName")]
public string name;