ScriptableObject.OnDisable()
Описание
Эта функция вызывается, когда скриптовый объект выходит за пределы области действия.
OnDisable вызывается в следующих сценариях:
- При загрузке сцены в окне Hierarchy, для любого ScriptableObject, который в настоящее время загружен в память, но не упоминается в этой сцене.
- При вызове Resources.UnloadUnusedAssets для любого ScriptableObject, который ранее был снят в окне Project.
- На домене перезагрузитьдля всех ScriptableObjects, загруженных в память. Впоследствии
OnEnableбудет вызван для этих объектов при их воссоздании.
OnDisable не может быть сопутствующей программой.
using UnityEngine; using System;
public class EventManager { public static Action OnSomethingHappened;
public static void TriggerEvent() { OnSomethingHappened?.Invoke(); } }
// ScriptableObject that listens to an event and unsubscribes when disabled [CreateAssetMenu(menuName = "Example/Event Listener SO")] public class EventListenerSO : ScriptableObject { void OnEnable() { Debug.Log("ScriptableObject enabled. Subscribing to event."); EventManager.OnSomethingHappened += HandleEvent; }
void OnDisable() { Debug.Log("ScriptableObject disabled. Unsubscribing from event."); EventManager.OnSomethingHappened -= HandleEvent; }
void HandleEvent() { Debug.Log("Event received by ScriptableObject!"); } }