コード例 #1
0
ファイル: NodeBase_VariableGet.cs プロジェクト: neoneper/FSMG
        public virtual T GetVariableValue()
        {
            T           result     = default(T);
            Graph_State graphState = (Graph_State)graph;

            if (string.IsNullOrEmpty(variableName) || variableName == FSMGUtility.StringTag_Undefined)
            {
                return(result);
            }

            if (Application.isEditor && Application.isPlaying == false && localType == GraphVarLocalType.Local)
            {
                return(result);
            }

            switch (GetGraphVarType())
            {
            case GraphVarType.Boolean:
                BoolVar boolVar = null;
                if (graphState.TryGetBoolVar(variableName, out boolVar, localType))
                {
                    result = (T)Convert.ChangeType(boolVar.value, typeof(T));
                }
                break;

            case GraphVarType.Double:
                DoubleVar doubleVar = null;
                if (graphState.TryGetDoubeVar(variableName, out doubleVar, localType))
                {
                    result = (T)Convert.ChangeType(doubleVar.value, typeof(T));
                }
                break;

            case GraphVarType.Float:
                FloatVar floatVar = null;
                if (graphState.TryGetFloatVar(variableName, out floatVar, localType))
                {
                    result = (T)Convert.ChangeType(floatVar.value, typeof(T));
                }
                break;

            case GraphVarType.Integer:
                IntVar intVar = null;
                if (graphState.TryGetIntVar(variableName, out intVar, localType))
                {
                    result = (T)Convert.ChangeType(intVar.value, typeof(T));
                }
                break;
            }

            return(result);
        }
コード例 #2
0
        public override void Execute(FSMBehaviour fsm)
        {
            if (Application.isEditor && Application.isPlaying == false)
            {
                return;
            }

            Graph_State graph_state = (Graph_State)graph;
            BoolVar     boolVar     = null;

            if (graph_state.TryGetBoolVar(varName, out boolVar, localType))
            {
                boolVar.value = GetInputValue <bool>("inputValue", this.inputValue);
            }
        }
コード例 #3
0
ファイル: Graph_State.cs プロジェクト: neoneper/FSMG
        public bool TryGetBoolVar(string varName, out BoolVar boolVar, GraphVarLocalType localType)
        {
            bool result = false;

            switch (localType)
            {
            case GraphVarLocalType.Local:
                result = last_fsm_executed.TryGetBooleanValue(varName, out boolVar);
                break;

            case GraphVarLocalType.Global:
                result = settings.TryGetBoolVar(varName, out boolVar);
                break;

            default:
                boolVar = null;
                break;
            }

            return(result);
        }
コード例 #4
0
 public bool TryGetBoolVar(string variable, out BoolVar boolVar)
 {
     return(boolVars.TryGetValue(variable, out boolVar));
 }