//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 loyalsoft. All rights reserved.
// Homepage: http://www.game7000.com/
// Feedback: http://www.game7000.com/
//------------------------------------------------------------
using GameFramework.ObjectPool;
namespace GameFramework.UI
{
internal sealed partial class UIManager : GameFrameworkModule, IUIManager
{
///
/// 界面实例对象。
///
private sealed class UIFormInstanceObject : ObjectBase
{
private object m_UIFormAsset;
private IUIFormHelper m_UIFormHelper;
public UIFormInstanceObject()
{
m_UIFormAsset = null;
m_UIFormHelper = null;
}
public static UIFormInstanceObject Create(string name, object uiFormAsset, object uiFormInstance, IUIFormHelper uiFormHelper)
{
if (uiFormAsset == null)
{
throw new GameFrameworkException("UI form asset is invalid.");
}
if (uiFormHelper == null)
{
throw new GameFrameworkException("UI form helper is invalid.");
}
UIFormInstanceObject uiFormInstanceObject = ReferencePool.Acquire();
uiFormInstanceObject.Initialize(name, uiFormInstance);
uiFormInstanceObject.m_UIFormAsset = uiFormAsset;
uiFormInstanceObject.m_UIFormHelper = uiFormHelper;
return uiFormInstanceObject;
}
public override void Clear()
{
base.Clear();
m_UIFormAsset = null;
m_UIFormHelper = null;
}
public override void Release(bool isShutdown)
{
m_UIFormHelper.ReleaseUIForm(m_UIFormAsset, Target);
}
}
}
}