Exemple #1
0
    public void processSpawn(BaseQTObject obj)
    {
        spawnedObjects.Add(obj.objectID, obj);

        BaseQTObjectComponent[] objectComponents = obj.GetComponentsInChildren <BaseQTObjectComponent>(true);
        for (int i = 0; i < objectComponents.Length; i++)
        {
            BaseQTObjectComponent comp = objectComponents[i];

            comp.obj   = obj;
            comp.index = i;
            comp.handleSpawn();

            obj.objectComponents.Add(i, comp);
        }
    }
    public ServerQTObjectComponent(BaseQTObjectComponent _component)
    {
        component = _component;

        lastFields = new Dictionary <string, object>();
    }
 public ClientQTObjectComponent(BaseQTObjectComponent _component)
 {
     component = _component;
 }
Exemple #4
0
    public override void handleMessage(QTMessage message)
    {
        switch (message.messageType)
        {
        case QTMessage.type.SYNC_POSITION: {
            SyncPositionMessage syncMessage = (SyncPositionMessage)message;
            if (ClientManager.instance.spawnManager.spawnedObjects.ContainsKey(syncMessage.objectID) == false)
            {
                return;
            }

            ClientQTObject clientObject  = (ClientQTObject)ClientManager.instance.spawnManager.spawnedObjects[syncMessage.objectID];
            SyncGameobject syncComponent = (SyncGameobject)clientObject.objectComponents[syncMessage.index];
            syncComponent.syncedPosition = new Vector3(syncMessage.posX, syncMessage.posY, syncMessage.posZ);
            break;
        }

        case QTMessage.type.SYNC_ROTATION: {
            SyncRotationMessage syncMessage = (SyncRotationMessage)message;
            if (ClientManager.instance.spawnManager.spawnedObjects.ContainsKey(syncMessage.objectID) == false)
            {
                return;
            }

            ClientQTObject clientObject  = (ClientQTObject)ClientManager.instance.spawnManager.spawnedObjects[syncMessage.objectID];
            SyncGameobject syncComponent = (SyncGameobject)clientObject.objectComponents[syncMessage.index];
            syncComponent.syncedRotation = new Vector3(syncMessage.rotX, syncMessage.rotY, syncMessage.rotZ);
            break;
        }

        case QTMessage.type.SYNC_ACTIVE: {
            SyncActiveMessage syncMessage = (SyncActiveMessage)message;
            if (ClientManager.instance.spawnManager.spawnedObjects.ContainsKey(syncMessage.objectID) == false)
            {
                return;
            }

            ClientQTObject clientObject  = (ClientQTObject)ClientManager.instance.spawnManager.spawnedObjects[syncMessage.objectID];
            SyncGameobject syncComponent = (SyncGameobject)clientObject.objectComponents[syncMessage.index];
            syncComponent.gameObject.SetActive(syncMessage.value);
            break;
        }

        case QTMessage.type.SYNC_FIELD: {
            FieldInfoMessage syncMessage = (FieldInfoMessage)message;
            if (ClientManager.instance.spawnManager.spawnedObjects.ContainsKey(syncMessage.objectID) == false)
            {
                return;
            }

            ClientQTObject        clientObject = (ClientQTObject)ClientManager.instance.spawnManager.spawnedObjects[syncMessage.objectID];
            BaseQTObjectComponent component    = clientObject.objectComponents[syncMessage.index];

            component.clientComponent.setSyncedField(syncMessage.fieldName, QTUtils.getValueFromSyncFieldMessage(syncMessage));
            break;
        }

        case QTMessage.type.SYNC_ANIMATION: {
            AnimationParameterInfoMessage syncMessage = (AnimationParameterInfoMessage)message;
            if (ClientManager.instance.spawnManager.spawnedObjects.ContainsKey(syncMessage.objectID) == false)
            {
                return;
            }

            ClientQTObject clientObject = (ClientQTObject)ClientManager.instance.spawnManager.spawnedObjects[syncMessage.objectID];
            SyncAnimation  component    = (SyncAnimation)clientObject.objectComponents[syncMessage.index];

            QTUtils.applySyncAnimationMessageToAnimator(component.animator, syncMessage);
            break;
        }

        case QTMessage.type.CALL_FUNCTION: {
            try {
                CallFunctionMessage callMessage = (CallFunctionMessage)message;
                if (ClientManager.instance.spawnManager.spawnedObjects.ContainsKey(callMessage.objectID) == false)
                {
                    return;
                }

                ClientQTObject        clientObject = (ClientQTObject)ClientManager.instance.spawnManager.spawnedObjects[callMessage.objectID];
                BaseQTObjectComponent component    = clientObject.objectComponents[callMessage.index];

                List <object> parameters = new List <object>();
                if (callMessage.parameters != null)
                {
                    foreach (FieldInfoMessage fieldMessage in callMessage.parameters)
                    {
                        parameters.Add(QTUtils.getValueFromSyncFieldMessage(fieldMessage));
                    }
                }

                component.callFunction(callMessage.functionName, parameters.ToArray());
            } catch (Exception e) {
                Debug.LogError(e);
            }
            break;
        }
        }
    }