protected BaseMightyMember(MightyContext context) { ID = ReferencesUtilities.GetUniqueID(this); Context = context; WrappersInfo = new List <MightyWrapperInfo>(); }
private static void CacheScenes() { MightyTypesCache.ClearCache(); for (var i = 0; i < SceneManager.sceneCount; i++) { foreach (var monoBehaviour in ReferencesUtilities.FindAllObjects <MonoBehaviour>(SceneManager.GetSceneAt(i))) { if (monoBehaviour == null) { continue; } var type = monoBehaviour.GetType(); if (!type.HasAttributeOfType <BaseHierarchyAttribute>()) { continue; } var mightyComponent = (MightyComponent)MightyTypesCache.Add(new MightyComponent(type, new MightyComponentContext(monoBehaviour))); var wrappedAttributes = mightyComponent.GetWrappedAttributes <BaseHierarchyAttribute>(); mightyComponent.CacheHierarchyForType(type, wrappedAttributes); } } }
public object DrawField(FieldInfo fieldInfo, Object context, object value, CustomDrawerAttribute attribute) { if (!GetDrawerForMember(ReferencesUtilities.GetUniqueID(fieldInfo), m_fieldCallback, out var drawerMethod)) { m_customDrawerCache[ReferencesUtilities.GetUniqueID(fieldInfo), m_fieldCallback] = MemberUtilities.GetMightyMethod <object>(context, attribute.DrawerCallback, m_fieldCallback); } return(InvokeDrawer(drawerMethod, $"object {attribute.DrawerCallback}(string label, object value)", fieldInfo.Name.GetPrettyName(), value)); }
public static IEnumerable <BaseMightyEditor> GetMightyEditors() { for (var i = 0; i < SceneManager.sceneCount; i++) { foreach (var script in ReferencesUtilities.FindAllObjects <MonoBehaviour>(SceneManager.GetSceneAt(i))) { if (CreateMightyEditor <MonoBehaviourEditor>(script, out var mightyEditor)) { yield return(mightyEditor); } } } foreach (var script in typeof(ScriptableObject).FindAssetsOfType()) { if (CreateMightyEditor <ScriptableObjectEditor>(script, out var mightyEditor)) { yield return(mightyEditor); } } }
public static void ApplyAutoValues() { for (var i = 0; i < SceneManager.sceneCount; i++) { foreach (var script in ReferencesUtilities.FindAllObjects <MonoBehaviour>(SceneManager.GetSceneAt(i))) { if (MightyEditorUtilities.CreateMightyEditor <MonoBehaviourEditor>(script, out var mightyEditor)) { mightyEditor.ApplyAutoValues(); } } } foreach (var script in typeof(ScriptableObject).FindAssetsOfType()) { if (MightyEditorUtilities.CreateMightyEditor <ScriptableObjectEditor>(script, out var mightyEditor)) { mightyEditor.ApplyAutoValues(); } } MightyDebugUtilities.MightyDebug("Auto Values Applied", MightyDebugUtilities.LogType.AutoValues); }