我正在开发一个 Unity Network 游戏,其中有两个玩家有一些基本动作。一个玩家由服务器控制,另一个玩家由客户端控制。
为此,我建立了一个客户端/服务器连接。建立连接后,我可以在屏幕两侧看到两个玩家。我使用了 RPC 方法。
现在,如果我在服务器上移动,我可以看到服务器玩家也在客户端移动。这意味着它们是同步的。但是当我在客户端移动时,只有客户端玩家移动。我看不到服务器端的移动。为什么这不起作用?
我已经用 UnityScript 编写了代码。
#pragma strict
var farword:boolean=false;
var backword:boolean=false;
var FirstPlayer:GameObject;
var SecondPlayer:GameObject;
var isFarword=false;
var isBackword=false;
function Update () {
if(isFarword)
{
networkView.RPC("ChangePos",RPCMode.All);
isFarword=false;
}
}
@RPC
function ChangePos()
{
if(isFarword)
{
if(Network.isServer)
{
FirstPlayer.transform.Translate(0,0,1);
isFarword=false;
}
if(Network.isClient)
{
SecondPlayer.transform.Translate(0,0,1);
isFarword=false;
}
}
else if(isBackword)
{
if(Network.isServer)
{
FirstPlayer.transform.Translate(0,0,-1);
isBackword=false;
}
if(Network.isClient)
{
SecondPlayer.transform.Translate(0,0,-1);
isBackword=false;
}
}
}
function OnGUI()
{
if(GUI.RepeatButton(new Rect(1000,100,80,70),"Farword"))
{
isFarword=true;
}
if(GUI.RepeatButton(new Rect(850,100,80,70),"second"))
{
isBackword=true;
}
}