了解如何让属性theNumber
添加和同步。
1)我有两名球员
2)当玩家产生时,我希望theNumber
添加一个,以便每个玩家报告不同的序号
我只是不让它工作,并希望得到一些帮助。
以下代码放在产生的玩家身上。
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class Player : NetworkBehaviour {
[SyncVar] public int theNumber;
private int _nr;
public override void OnStartLocalPlayer () {
print ("OnStartLocalPlayer");
_nr = theNumber;
CmdX (theNumber);
DoCalc ();
}
[Command]
void CmdX (int myInt) {
print ("theNumber: " + myInt);
}
[Client]
void DoCalc () {
_nr++;
CmdPrint (_nr);
}
[Command]
void CmdPrint (int nr) {
theNumber = nr;
print ("CLIENT CONNECTED WITH THE FOLLOWING NUMBER: " + theNumber);
}
}
答案 0 :(得分:1)
当新客户端连接并将其发送时,您将需要更改服务器上的值。从它的外观来看,你只是修改了客户端上的值。此外,theNumber上的[SyncVar]属性将同步客户端的值,因此可能会将其更改为每个客户端的相同值。
在此处阅读更多内容:http://docs.unity3d.com/ScriptReference/Networking.SyncVarAttribute.html