Ejemplo n.º 1
0
    void Draw(AIConditional conditional)
    {
        if (!conditional)
        {
            return;
        }

        ConditionField(conditional);
        Draw(conditional.condition);

        if (conditional.ifFalse == null)
        {
            conditional.ifFalse = new AIActionCollection();
        }
        if (conditional.ifTrue == null)
        {
            conditional.ifTrue = new AIActionCollection();
        }

        Header(Texts.ifTrue, conditional.ifTrue);
        Draw(conditional.ifTrue);

        Header(Texts.ifFalse, conditional.ifFalse);
        Draw(conditional.ifFalse);
    }
Ejemplo n.º 2
0
    void ConditionField(AIConditional conditional)
    {
        var i = conditional.condition ? Conditions.Keys.ToList().IndexOf(conditional.condition.GetType()) : -1;

        EditorGUI.BeginChangeCheck();
        var l = Conditions.Values.ToList();

        l.Insert(0, Texts.none);
        i = EditorGUILayout.Popup(Texts.condition, i + 1, l.ToArray());

        if (EditorGUI.EndChangeCheck())
        {
            if (i == 0)
            {
                conditional.condition = null;
            }
            else
            {
                conditional.condition = (AICondition)Activator.CreateInstance(Conditions.Keys.ElementAt(i - 1));
            }
        }
    }