Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


OnDisable()

This function is called when the scriptable object goes out of scope.
Read time 1 minuteLast updated 6 days ago

Definition

public void OnDisable()

Remarks

OnDisable
is called in the following scenarios: * On loading a scene in the Hierarchy window, for any ScriptableObject that is currently loaded in memory but is not referenced in that scene. * On invocation of Resources.UnloadUnusedAssets for any ScriptableObject that was previously deselected in the Project window. * On domain reload, for all ScriptableObjects loaded in memory. Subsequently
OnEnable
is called for these objects when they are recreated.
OnDisable
cannot be a coroutine.

Examples

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!"); }}