Exemple #1
0
    // Tell a transform that it's control was changed
    public void OnTransformControlMessage(VNetMessageTransformControl message)
    {
        if (m_networkTransforms.ContainsKey(message.transformUID) == false)
        {
            return;
        }

        VNetTransform trans = m_networkTransforms [message.transformUID];

        if (message.clientUID == VNetCommon.NET_CLIENT_INVALID_UID &&
            message._client.GetUID() == trans.controllingClient)
        {
            trans.RemoteRevokeControl();
            return;
        }

        trans.RemoteTakeControl(message.requestTime, message.clientUID);
    }
Exemple #2
0
    public void Update()
    {
        if (netSpawnAtTime == 0)
        {
            return;
        }

        if (netSpawnAtTime > VNetSessionTime.Inst.GetServerTime())
        {
            return;
        }

        netSpawnAtTime = 0;
        enabled        = false;

        // Spawn the prefab
        PrefabInstance = GameObject.Instantiate(m_prefab);
        PrefabInstance.transform.position = spawnPos;
        PrefabInstance.transform.rotation = spawnRot;
        VNetTransform netTrans = PrefabInstance.GetComponent <VNetTransform>();

        if (netTrans)
        {
            netTrans.netIdentifier = spawnObjectGUID;
            if (spawnOwnerID != VNetCommon.NET_CLIENT_INVALID_UID)
            {
                if (spawnOwnerID == VNet.Inst.GetUID())
                {
                    netTrans.TakeLocalControl();
                }
                else
                {
                    netTrans.RemoteTakeControl(netSpawnAtTime, spawnOwnerID);
                }
            }
        }
    }