如何在播放器生成时添加和同步属性

时间:2016-01-18 06:19:48

标签: unity3d multiplayer unity-networking unity3d-5

了解如何让属性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);
}

}

1 个答案:

答案 0 :(得分:1)

当新客户端连接并将其发送时,您将需要更改服务器上的值。从它的外观来看,你只是修改了客户端上的值。此外,theNumber上的[SyncVar]属性将同步客户端的值,因此可能会将其更改为每个客户端的相同值。

在此处阅读更多内容:http://docs.unity3d.com/ScriptReference/Networking.SyncVarAttribute.html