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

我的理解是,一旦玩家加入,我需要使用syncvars在每个客户端上显示所有玩家名称。首先,我正在尝试...

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

void OnPlayerName(string newPlayerName)
{
    playerlist.text = name;

}

public override void OnStartClient()
{
    name = "terrance";
}


运行此命令时,文本框为空。如果我设置的文本没有syncvars,它将起作用。当然,只有在没有syncvars的情况下,更改才对本地客户端可见。

解析度:
参数newPlayerName需要与变量名称匹配,因此在这种情况下,“名称” ...

void OnPlayerName(string name)

最佳答案

您正在将其挂接到不存在的功能“ On PlayName”上
应该

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

10-07 20:17