在做Unet 同步时 我们经常要创建同步物体 动态添加 NetWork Identity 组件 在连入的时候发现 往往会出现这种错误
一般是由于 物体生成出来没有注册 或者注册放在了 服务器端造成的 或者两端都执行了Spwan 方法
之前的博客说过 网络同步物体
首先1. 注册信息
ClientScene.RegisterPrefab()
ClientScene.RegisterSpawnHandler()
这两种都可以(但注意必须在客户端执行)
接下来实例化
GameObject trololo = GameObject.CreatePrimitive(PrimitiveType.Capsule);
//添加 NetworkIdentity 组件 同步的唯一标识
trololo.AddComponent<NetworkIdentity>();
//spwan 同步生成 creatureAssetId 是一个NetworkHash128
NetworkServer.Spawn(trololo, creatureAssetId);
Spawn 有两个重载 NetworkHash128 你也可以自己设置 然后系统会内置赋值给assetId
public static void Spawn(GameObject obj);
public static void Spawn(GameObject obj, NetworkHash128 assetId);