[Mirror自学笔记]SyncVars

官方解释

SyncVars 是从 NetworkBehaviour 继承的类的属性,它们从服务器同步到客户端。当生成游戏对象或新玩家加入正在进行的游戏时,将向他们发送对他们可见的联网对象上所有 SyncVar 的最新状态。使用SyncVar自定义属性指定要同步脚本中的哪些变量。

SyncVars 的状态在调用之前应用于客户端上的游戏对象OnStartClient(),因此对象的状态在内部始终是最新的OnStartClient()

SyncVars 可以使用Mirror 支持的任何类型。在单个 NetworkBehaviour 脚本中最多可以有 64 个 SyncVar,包括 SyncList(请参阅下面的下一节)。

当 SyncVar 的值发生更改时,服务器会自动发送 SyncVar 更新,因此您无需跟踪它们何时更改或自己发送有关更改的信息。在检查器中更改值不会触发更新。

Abyss: SyncVars是所有客户端即时同步的属性,使用方法如下

public class Enemy : NetworkBehaviour
{
    [SyncVar]
    public int health = 100;
​
    void OnMouseUp()
    {
        NetworkIdentity ni = NetworkClient.connection.identity;
        PlayerController pc = ni.GetComponent();
        pc.currentTarget = gameObject;
    }
}

Abyss:每当health更新,所有客户端同步更新

Abyss:此属性可继承,子对象继承来的SyncVars也同步,如下

class Pet : NetworkBehaviour
{
    [SyncVar] 
    string name;
}
​
class Cat : Pet
{
    [SyncVar]
    public Color32 color;
}

你可能感兴趣的:(unity)