public override void DrawMethod(MightyMember <MethodInfo> mightyMember, BaseMethodAttribute baseAttribute)
        {
            var methodInfo = mightyMember.MemberInfo;

            if (methodInfo.GetParameters().Length == 0)
            {
                var buttonAttribute = (ButtonAttribute)baseAttribute;
                var buttonText      = string.IsNullOrEmpty(buttonAttribute.Text) ? methodInfo.Name.DrawPrettyName() : buttonAttribute.Text;

                var enabled = GUI.enabled;
                if (!m_buttonCache.Contains(mightyMember))
                {
                    InitDrawer(mightyMember, baseAttribute);
                }
                GUI.enabled = m_buttonCache[mightyMember].Value && (buttonAttribute.ExecuteInPlayMode || !EditorApplication.isPlaying);

                if (GUILayout.Button(buttonText, GUILayout.Height(buttonAttribute.Height)))
                {
                    methodInfo.Invoke(mightyMember.Target, null);
                }

                GUI.enabled = enabled;
            }
            else
            {
                EditorDrawUtility.DrawHelpBox($"{typeof(ButtonAttribute).Name} works only on methods with no parameters");
            }
        }
Beispiel #2
0
        public override void DrawMethod(MightyMember <MethodInfo> mightyMember, BaseMethodAttribute baseAttribute)
        {
            var methodInfo = mightyMember.MemberInfo;

            if (methodInfo.GetParameters().Length == 0)
            {
                if (baseAttribute.ExecuteInPlayMode || !EditorApplication.isPlaying)
                {
                    methodInfo.Invoke(mightyMember.Target, null);
                }
            }
            else
            {
                EditorDrawUtility.DrawHelpBox($"{baseAttribute.GetType().Name} works only on methods with no parameters");
            }
        }
Beispiel #3
0
 public void OnModifiedProperties(bool modified, MightyMethod mightyMethod, BaseMethodAttribute baseAttribute) =>
 OnModifiedProperties(modified, mightyMethod, (T)baseAttribute);
Beispiel #4
0
 public void OnInspectorGUI(bool canDraw, MightyMethod mightyMethod, BaseMethodAttribute baseAttribute) =>
 OnInspectorGUI(canDraw, mightyMethod, (T)baseAttribute);
Beispiel #5
0
 public void OnEnable(MightyMethod mightyMethod, BaseMethodAttribute baseAttribute) => OnEnable(mightyMethod, (T)baseAttribute);
Beispiel #6
0
 public abstract void DrawMethod(MightyMember <MethodInfo> mightyMember, BaseMethodAttribute baseAttribute);