コード例 #1
0
    void DrawDataEffects(EffectRegister effectsByRole, EffectTriggerType trigger)
    {
        var effcond = effectsByRole.First(eff => eff.Key.tType == trigger).Key;

        for (var i = 0; i < effectsByRole[effcond].Effects.Count; i++)
        {
            Bh();
            var cached = effectsByRole[effcond].Effects[i];
            effectsByRole[effcond].Effects[i] =
                (BaseEffectData)EditorGUILayout.ObjectField(effectsByRole[effcond].Effects[i], typeof(BaseEffectData),
                                                            true);

            if (cached != effectsByRole[effcond].Effects[i])
            {
                SaveChanges();
            }

            if (GUILayout.Button("-", WidthXS))
            {
                var effect = effectsByRole[effcond].Effects[i];
                effectsByRole[effcond].Effects.Remove(effect);
                SaveChanges();
            }

            Eh();
        }
    }
コード例 #2
0
    void DrawLabelAndAddTrigger(EffectRegister effectsByRole, EffectTriggerType trigger)
    {
        var effcond = effectsByRole.First(eff => eff.Key.tType == trigger).Key;

        Bh();

        GUILayout.Label(trigger.ToString());
        if (GUILayout.Button("+", WidthXS))
        {
            effectsByRole[effcond].Effects.Add(null);
            SaveChanges();
        }

        Eh();
    }