public void RequestObjectRegistration(NetIncomingMessage msg, int actor_id) { var client = GetClientInfo(msg); var obj = NetworkActorRegistry.GetById(actor_id); client.proximity_set.Add(obj); }
private void ReceiveObjectState(NetIncomingMessage msg) { while (msg.Position < msg.LengthBits) { var objectId = msg.ReadInt32(); NetworkActorRegistry.GetById(objectId).Receive(msg); } }
public void RPC_Despawn(NetIncomingMessage msg, int objectId) { var net_actor = NetworkActorRegistry.GetById(objectId); NetworkRemoteCallSender.CallOnServer("RPC_RequestObjectDeregistration", net_actor.actor_id); NetworkActorRegistry.UnregisterActor(net_actor); GameObject.Destroy(net_actor.gameObject); }
static object GetCallTargetInstance(int id) { if (id == 0) { return(LidPeer.instance); } else { return(NetworkActorRegistry.GetById(id)); } }
public void Spawn(NetIncomingMessage msg, byte hostId, int objectId, string prefabName, Vector3 pos, Quaternion rot) { var game_object = (GameObject)GameObject.Instantiate(Resources.Load(prefabName), pos, rot); var net_actor = game_object.GetComponent <NetworkActor>(); net_actor.host_id = hostId; net_actor.actor_id = objectId; net_actor.is_owner = NetworkPeer.instance.host_id == hostId; net_actor.prefab_name = prefabName; NetworkRemoteCall.CallOnServer("RequestObjectRegistration", net_actor.actor_id); NetworkActorRegistry.RegisterActor(net_actor); }
public void RPC_RequestDespawn(NetIncomingMessage msg) { var client_info = GetClientInfo(msg); if (client_info.has_spawned) { client_info.has_spawned = false; var net_actor = NetworkActorRegistry.GetById(client_info.actor_id); GameObject.Destroy(net_actor.gameObject); if (connected_clients.Count > 1) { NetworkRemoteCallSender.CallOnAllClients("RPC_Despawn", client_info.actor_id); } } }
void Start() { LocateAndSortScripts(); NetworkActorRegistry.RegisterActor(this); Init(); }