コード例 #1
0
    public void RequestObjectRegistration(NetIncomingMessage msg, int actor_id)
    {
        var client = GetClientInfo(msg);
        var obj    = NetworkActorRegistry.GetById(actor_id);

        client.proximity_set.Add(obj);
    }
コード例 #2
0
 private void ReceiveObjectState(NetIncomingMessage msg)
 {
     while (msg.Position < msg.LengthBits)
     {
         var objectId = msg.ReadInt32();
         NetworkActorRegistry.GetById(objectId).Receive(msg);
     }
 }
コード例 #3
0
    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);
    }
コード例 #4
0
 static object GetCallTargetInstance(int id)
 {
     if (id == 0)
     {
         return(LidPeer.instance);
     }
     else
     {
         return(NetworkActorRegistry.GetById(id));
     }
 }
コード例 #5
0
    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);
    }
コード例 #6
0
    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);
            }
        }
    }
コード例 #7
0
 void Start()
 {
     LocateAndSortScripts();
     NetworkActorRegistry.RegisterActor(this);
     Init();
 }