protected override void OnInitialized()
        {
            base.OnInitialized();
            if (!typeof(GOAPAction).IsAssignableFrom(T_Model.GetType()))
            {
                return;
            }

            for (int i = 0; i < T_Model.Preconditions.Count; i++)
            {
                VisualElement v = CreateToggle(T_Model.Preconditions[i], (ele, state) =>
                {
                    T_Model.RemovePrecondition(state);
                    ele.RemoveFromHierarchy();
                });
                conditionFoldout.Add(v);
                ConditionElements[T_Model.Preconditions[i]] = v;
            }

            for (int i = 0; i < T_Model.Effects.Count; i++)
            {
                VisualElement v = CreateToggle(T_Model.Effects[i], (ele, state) =>
                {
                    T_Model.RemoveEffect(state);
                    ele.RemoveFromHierarchy();
                });
                effectFoldout.Add(v);
                EffectElements[T_Model.Effects[i]] = v;
            }
        }
        void OnEffectAdded(GOAPState _newEffect)
        {
            VisualElement v = CreateToggle(_newEffect, (ele, state) =>
            {
                T_Model.RemoveEffect(state);
            });

            effectFoldout.Add(v);
            EffectElements[_newEffect] = v;
        }