예제 #1
0
    public override void handleMessage(QTMessage message)
    {
        switch (message.messageType)
        {
        case QTMessage.type.INPUT:
            InputMessage inputMessage = (InputMessage)message;

            if (inputMessage.active)
            {
                onClientKeyDown(inputMessage.keyCode);
            }
            else
            {
                onClientKeyUp(inputMessage.keyCode);
            }
            break;

        case QTMessage.type.INPUT_AXIS:
            InputAxisMessage inputAxisMessage = (InputAxisMessage)message;
            updateAxisState(inputAxisMessage.axis, inputAxisMessage.value);
            break;

        case QTMessage.type.VR_ACTION:
            VRActionMessage actionMessage = (VRActionMessage)message;
            updateVRAction(actionMessage.actionName, QTUtils.getValueFromVRActionMessage(actionMessage));
            break;

        case QTMessage.type.SYNC_VR_POSITION:
            SyncVRPositionMessage positionMessage = (SyncVRPositionMessage)message;
            updateVRPosition(positionMessage.source, new Vector3(positionMessage.posX, positionMessage.posY, positionMessage.posZ));
            break;

        case QTMessage.type.SYNC_VR_ROTATION:
            SyncVRRotationMessage rotationMessage = (SyncVRRotationMessage)message;
            updateVRRotation(rotationMessage.source, new Vector3(rotationMessage.rotX, rotationMessage.rotY, rotationMessage.rotZ));
            break;
        }
    }
예제 #2
0
    public static object getValueFromVRActionMessage(VRActionMessage message)
    {
        switch (message.syncedValueType)
        {
        case VRActionMessage.syncType.VECTOR1: {
            VRActionVector1Message syncMessageDetailed = (VRActionVector1Message)message;
            return(syncMessageDetailed.value);
        }

        case VRActionMessage.syncType.VECTOR2: {
            VRActionVector2Message syncMessageDetailed = (VRActionVector2Message)message;
            return(new Vector2(syncMessageDetailed.value_0, syncMessageDetailed.value_1));
        }

        case VRActionMessage.syncType.BOOL: {
            VRActionBoolMessage syncMessageDetailed = (VRActionBoolMessage)message;
            return(syncMessageDetailed.value);
        }

        default: {
            return(null);
        }
        }
    }