Unity 5.4。在多人游戏中关闭子网格渲染器

时间:2016-08-11 16:32:06

标签: c# unity3d unityscript unity5

我想让人们在多人游戏的场景中四处走动。我想要关闭身体的网格渲染器。 (身体是孩子的对象) 所以我写了 Body.GetComponent<MeshRenderer> ().enabled = false; 在Networkbehaviour脚本中。不幸的是,这不会在网络中同步。

如何同步?

1 个答案:

答案 0 :(得分:1)

我假设您正在使用Unity UNET。

  1. 创建一个布尔值。
  2. 将其标记为[SyncVar]
  3. 编写一个钩子函数。当布尔变量改变其值时,UNET将自动调用该钩子函数。
  4. 链接:https://docs.unity3d.com/ScriptReference/Networking.SyncVarAttribute.html

    [SyncVar(hook = "OnSomeValueChange")]
    public bool isMeshEnabled;
    
    public void OnSomeValueChange(bool valueToChangeTo)
    {
         isMeshEnabled = valueToChangeTo;
         // Enable/Disable client's mesh here
    }