public void CmdAddOne(CreationNetworkMessage cnm) { GameObject nBase = MainService.Instance.poolManager.Instantiate(networkedBase, transform.position, Quaternion.identity); //GameObject nBase = Instantiate(networkedBase); switch (cnm.networkSyncType) { case NetworkSyncType.PlayerObject: // this player will have Authority NetworkServer.Spawn(nBase, connectionToClient); break; case NetworkSyncType.SceneObject: NetworkServer.Spawn(nBase); break; case NetworkSyncType.Player: break; default: break; } var nob = nBase.GetComponent <NetworkObjectBase>(); nob.ServerSideInit(cnm); }
//When CreationNetworkMessage message set, trigger this method public void ClientSideRemoteInit(CreationNetworkMessage last, CreationNetworkMessage cnm) { Debug.Log($"NetworkObjectBase.InitSyncRemote { message }"); var nt = GetComponent <NetworkTransform>(); switch (cnm.networkSyncType) { case NetworkSyncType.Player: var pms = GetComponent <PlayerMainSync>(); if (pms == null) { pms = gameObject.AddComponent <PlayerMainSync>(); } nt.clientAuthority = true; break; case NetworkSyncType.PlayerObject: nt.clientAuthority = true; break; case NetworkSyncType.SceneObject: break; default: break; } }
// setter @server public void ServerSideInit(CreationNetworkMessage pcnMsg) { if (!isServer) { return; } Debug.Log($"NetworkObjectBase.ServerInit {pcnMsg.ToString()}"); message = pcnMsg; Debug.Log($"NetworkObjectBase.ServerInit Trigger ClientSideRemoteInit"); Debug.Log($"NetworkObjectBase.ServerInit End {message.ToString()}"); }