Gameframework中的UI框架
框架说明
使用
public class UILogin : UGuiForm
{
protected override void OnInit(object userData)
{
base.OnInit(userData);
}
protected override void OnOpen(object userData)
{
base.OnOpen(userData);
}
protected override void OnResume()
{
base.OnResume();
}
protected override void OnClose(bool isShutdown, object userData)
{
base.OnClose(isShutdown, userData);
}
protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
{
base.OnUpdate(elapseSeconds, realElapseSeconds);
}
}
public class Test
{
public static void OpenUI()
{
UIComponent uiComponent = GameEntry.GetComponent<UIComponent>();
int formId = uiComponent.OpenUIForm("UI/Login.prefab", "Default", new List<string>{""});
if ( !uiComponent.IsLoadingUIForm(formId) )
{
UIForm uiForm = uiComponent.GetUIForm(formId);
if ( uiForm != null )
{
UILogin logic = (UILogin)uiForm.Logic;
}
}
EventComponent eventComponent = GameEntry.GetComponent<EventComponent>();
eventComponent.Subscribe(OpenUIFormSuccessEventArgs.EventId,(sender,eventArgs)=>{
UIForm uiForm = (UIForm)(((OpenUIFormSuccessEventArgs)eventArgs).UIForm);
if ( uiForm != null )
{
UILogin logic = (UILogin)uiForm.Logic;
}
});
}
}
打开UI流程
UIComponent.OpenUIForm(string uiFormAssetName, string uiGroupName)
{
return m_UIManager.OpenUIForm(uiFormAssetName, uiGroupName, priority, pauseCoveredUIForm, userData)
{
UIGroup uiGroup = (UIGroup)GetUIGroup(uiGroupName);
int serialId = ++m_Serial;
m_UIFormsBeingLoaded.Add(serialId, uiFormAssetName);
m_ResourceManager.LoadAsset(uiFormAssetName, priority, m_LoadAssetCallbacks, OpenUIFormInfo.Create(serialId, uiGroup, pauseCoveredUIForm, userData))
{
UIManager.LoadAssetSuccessCallback(string uiFormAssetName, object uiFormAsset, float duration, object userData)
{
m_UIFormsBeingLoaded.Remove(openUIFormInfo.SerialId);
object instance = m_UIFormHelper.InstantiateUIForm(uiFormAsset)
{
return Instantiate((Object)uiFormAsset);
}
UIManager.InternalOpenUIForm(openUIFormInfo.SerialId, uiFormAssetName, openUIFormInfo.UIGroup, instance, openUIFormInfo.PauseCoveredUIForm, true, duration, openUIFormInfo.UserData)
{
IUIForm uiForm = m_UIFormHelper.CreateUIForm(uiFormInstance, uiGroup, userData)
{
GameObject gameObject = uiFormInstance as GameObject;
return gameObject.GetOrAddComponent<UIForm>();
};
uiForm.OnInit(serialId, uiFormAssetName, uiGroup, pauseCoveredUIForm, isNewInstance, userData)
{
m_UIFormLogic = GetComponent<UIFormLogic>();
m_UIFormLogic.OnInit(userData);
}
uiForm.OnOpen(userData)
{
m_UIFormLogic.OnOpen(userData);
}
}
}
}
}
}