class in Unity.Scripting.LifecycleManagement
/
Inherits from:Unity.Scripting.LifecycleManagement.LifecycleAttributeBase
Marks a static method as a callback to be invoked after code has been loaded during Editor startup or after a code reload.
Methods marked with this attribute are called after assemblies have been loaded and initialized. This happens:
Use this callback to:
This is a method attribute that can only be applied to static methods with no parameters and return type void.
Additional resources: OnCodeUnloadingAttribute, OnCodeInitializingAttribute, RuntimeInitializeOnLoadMethodAttribute, InitializeOnLoadAttribute
using Unity.Scripting.LifecycleManagement; using UnityEngine; using System; using System.Collections.Generic;
public static partial class PluginRegistry { private static Dictionary<string, Type> s_PluginTypes;
[OnCodeLoaded] static void DiscoverPlugins() { s_PluginTypes = new Dictionary<string, Type>(); foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) { foreach (var type in assembly.GetTypes()) { var attr = type.GetCustomAttributes(typeof(GamePluginAttribute), false); if (attr.Length > 0) s_PluginTypes[type.Name] = type; } } }
public static Type GetPlugin(string name) => s_PluginTypes.TryGetValue(name, out var t) ? t : null; }
public class GamePluginAttribute : Attribute { }