【问题标题】:How to have a property add and sync when player spawn如何在玩家生成时添加和同步属性
【发布时间】:2016-01-18 06:19:47
【问题描述】:

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

}

【问题讨论】:

    标签: unity3d multiplayer unity-networking unity3d-5


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-01
      • 2021-11-19
      • 1970-01-01
      • 2022-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      相关资源
      最近更新 更多