5.4统一.在多人游戏中打开儿童的网格渲染器

本文关键字:网格 统一 游戏 | 更新日期: 2023-09-27 18:01:54

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

我如何同步这个?

5.4统一.在多人游戏中打开儿童的网格渲染器

我假设你使用的是Unity UNET。

  1. 创建布尔值
  2. 标记为[SyncVar]
  3. 写一个钩子函数。当布尔变量改变其值时,UNET将自动调用该钩子函数。

链接: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
}