예제 #1
0
    public void RpcSignalVariableChange(string serializedVariable)
    {
        // Désérialisation
        IEventSource deserializedVariable = null;

        try {
            deserializedVariable = ValueSourceSerialization.Deserialize(serializedVariable);
            SimpleValueSource <bool>  boolVar  = (deserializedVariable as SimpleValueSource <bool>);
            SimpleValueSource <int>   intVar   = (deserializedVariable as SimpleValueSource <int>);
            SimpleValueSource <float> floatVar = (deserializedVariable as SimpleValueSource <float>);

            if (boolVar != null)
            {
                SignalVariableChangeToClient(boolVar);
            }
            else if (intVar != null)
            {
                SignalVariableChangeToClient(intVar);
            }
            else if (floatVar != null)
            {
                SignalVariableChangeToClient(floatVar);
            }
            else
            {
                throw new ArgumentException("Type de données non supporté");
            }
        }
        catch (Exception e) {
            Debug.LogError(e.ToString());
        }
    }
예제 #2
0
    public void SignalVariableChangeToServer <T>(SimpleValueSource <T> source)
    {
        if (source == null || string.IsNullOrEmpty(source.Identifier))
        {
            return;
        }

        // En RPC, on ne peut pas passer n'importe quels paramètres, donc il faut ruser un peu
        CmdSignalVariableChange(ValueSourceSerialization.Serialize(source));
    }