Unet在客户端初始化时只会同步变量,但是hook函数在初始化时是不会同步的。
如果新添加的物体也想同步hook函数,现在想到的办法是在客户端连接后的OnClientConnect里,调用一个协程方法,
IEnumerator DelayBroad() { yield return new WaitForSeconds(0.1f); GameObject[] clones = GameObject.FindGameObjectsWithTag("Equip"); for (int i = 0; i < clones.Length; i++) { clones[i].transform.parent = empty.transform; } yield return new WaitForSeconds(0.1f); empty.SetBroadcast(); }
然后使用BroadcastMessage广播形式,手动调用那些需要同步的方法。