コード例 #1
0
        private void SetValues(InstructionGraph graph, InstructionStore variables, int iteration, VariableValue item)
        {
            if (Index.IsAssigned)
            {
                Index.SetValue(variables, VariableValue.Create(iteration));
            }

            if (Value.IsAssigned)
            {
                Value.SetValue(variables, item);
            }

            graph.GoTo(Loop, nameof(Loop));
        }
コード例 #2
0
 private void TextChanged(string text)
 {
     if (_variables != null)
     {
         var result = Variable.SetValue(_variables, VariableValue.Create(_text.textComponent.text));
         if (result == SetVariableResult.NotFound)
         {
             Debug.LogWarningFormat(this, _variableNotFoundWarning, name, Variable);
         }
         else if (result == SetVariableResult.ReadOnly)
         {
             Debug.LogWarningFormat(this, _readOnlyWarning, name, Variable);
         }
     }
 }
コード例 #3
0
        public void Assign(IVariableStore variables, VariableReference reference, VariableValue value)
        {
            if (reference.IsAssigned)
            {
                var result = reference.SetValue(variables, value);

                switch (result)
                {
                case SetVariableResult.NotFound: Debug.LogWarningFormat(this, _missingAssignmentWarning, reference, name); break;

                case SetVariableResult.ReadOnly: Debug.LogWarningFormat(this, _readOnlyAssignmentWarning, reference, name); break;

                case SetVariableResult.TypeMismatch: Debug.LogWarningFormat(this, _invalidAssignmentWarning, reference, name); break;
                }
            }
        }
コード例 #4
0
ファイル: LoopNode.cs プロジェクト: larsolm/UnityComposition
        public override IEnumerator Run(InstructionGraph graph, InstructionStore variables, int iteration)
        {
            var condition = Condition.Execute(this, variables, VariableType.Bool);

            if (condition.Bool && Loop != null)
            {
                if (Index.IsAssigned)
                {
                    Index.SetValue(variables, VariableValue.Create(iteration));
                }

                graph.GoTo(Loop, nameof(Loop));
            }

            yield break;
        }