ドキュメント

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.
読み終わるまでの所要時間 1 分最終更新 1ヶ月前

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(); } }}