我正在尝试发送一个简单的多人游戏的数据,在这个例子中使用Var1和Var2。Var1应该作为Var2发送并存储在另一个用户的实例中。
我的代码可以正常工作,除了我认为服务器正在向自己发送数据并覆盖它接收的数据,因为如果我加载客户端并初始化/发送数据,服务器会看到它。然后,如果我到服务器初始化/发送数据,客户端就会看到它。但是,如果我返回到客户端并发送数据,服务器将不再看到它。这就像服务器既是客户端又是服务器。我是不是做错了什么?
public class mouseController : NetworkBehaviour
{
GameLoop g;
void Start()
{
GameObject thePlayer = GameObject.Find("Main Camera");
g = thePlayer.GetComponent<GameLoop>();
}
void Update()
{
if (!isLocalPlayer)
{
return;
}
if (isServer)
{
if (g.var1 > 0)
{
Rpcsenddata(g.var1);
}
}
else
{
if (g.var1 > 0)
{
Cmdsenddata(g.var1);
}
}
}
[Command]
void Cmdsenddata(int i)
{
g.var2 = i;
}
[ClientRpc]
public void Rpcsenddata(int i)
{
g.var2 = i;
}
}https://gyazo.com/b77e2ce35ec5f4d47147894c9430da03
(发送的数据是您的对手选择的卡片。服务器是右侧的窗口)
发布于 2018-10-01 03:03:10
我想我通过添加!isLocalPlayer检查来修复它
[ClientRpc]
public void Rpcsenddata(int i)
{
if (!isLocalPlayer) {
g.ehandSelected = i;
}
}https://stackoverflow.com/questions/52580507
复制相似问题