Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


OnDisable()

This function is called when the TileBase goes out of scope. Override this to deinitialize any data for the TileBase.
Read time 1 minuteLast updated 6 days ago

Definition

public virtual void OnDisable()

Remarks

See OnDisable.
The example overrides TileBase.OnDisable to initialize data for a scripted TileBase.

Examples

using Unity.Collections;using UnityEngine;using UnityEngine.Tilemaps;public static class TilemapExample{ public class AnimatedEntityIdTile : Tile { public struct AnimatedEntityIdData { public TileData m_TileData; public NativeArray<EntityId> m_AnimatedSpriteEntityIds; public float m_Speed; public float m_AnimationStartTime; public TileAnimationFlags m_TileAnimationFlags; public void Dispose() { if (m_AnimatedSpriteEntityIds.IsCreated) m_AnimatedSpriteEntityIds.Dispose(); } } private AnimatedEntityIdData m_AnimatedEntityIdData; private Sprite[] m_AnimatedSprites; private float m_Speed; private float m_AnimationStartTime; private TileAnimationFlags m_TileAnimationFlags; public override void OnEnable() { base.OnEnable(); m_AnimatedEntityIdData.m_TileData = new TileData() { sprite = this.sprite, color = this.color, transform = this.transform, gameObject = this.gameObject, colliderType = this.colliderType, flags = this.flags, }; if (m_AnimatedSprites != null && m_AnimatedSprites.Length > 0) { m_AnimatedEntityIdData.m_AnimatedSpriteEntityIds = new NativeArray<EntityId>(m_AnimatedSprites.Length, Allocator.Persistent); for (var i = 0; i < m_AnimatedSprites.Length; i++) { m_AnimatedEntityIdData.m_AnimatedSpriteEntityIds[i] = m_AnimatedSprites[i] != null ? m_AnimatedSprites[i].GetEntityId() : EntityId.None; } } m_AnimatedEntityIdData.m_Speed = this.m_Speed; m_AnimatedEntityIdData.m_AnimationStartTime = this.m_AnimationStartTime; m_AnimatedEntityIdData.m_TileAnimationFlags = this.m_TileAnimationFlags; } public override void OnDisable() { m_AnimatedEntityIdData.Dispose(); base.OnDisable(); } }}