com.alicizax.unity.framework/Runtime/UI/Constant/UIMetadataObject.cs
2025-12-24 20:44:36 +08:00

33 lines
936 B
C#

using System;
using AlicizaX.ObjectPool;
namespace AlicizaX.UI.Runtime
{
internal class UIMetadataObject : ObjectBase
{
public static UIMetadataObject Create(UIMetadata target, string name)
{
UIMetadataObject obj = MemoryPool.Acquire<UIMetadataObject>();
obj.Initialize(name, target);
return obj;
}
public static UIMetadataObject Create(UIMetadata target, RuntimeTypeHandle handle)
{
UIMetadataObject obj = MemoryPool.Acquire<UIMetadataObject>();
// Use type handle hash code as name to avoid string allocation
obj.Initialize(handle.GetHashCode().ToString(), target);
return obj;
}
protected internal override void Release(bool isShutdown)
{
UIMetadata metadata = (UIMetadata)Target;
if (metadata != null)
{
}
}
}
}