Skip to content

Commit 3de2194

Browse files
committed
fix(ui): 修复事件参数直接传递引用导致引用失效的问题
UI 事件(Open/Close 相关)改为通过 Create 创建新参数实例再 Fire, 避免事件参数被回收池回收后引用失效。
1 parent d9b9cf3 commit 3de2194

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

Runtime/UIComponent.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,7 @@ public void SetUIFormInstanceLocked(UIForm uiForm, bool locked)
651651
[UnityEngine.Scripting.Preserve]
652652
private void OnOpenUIFormSuccess(object sender, OpenUIFormSuccessEventArgs e)
653653
{
654-
m_EventComponent.Fire(this, e);
654+
m_EventComponent.Fire(this, OpenUIFormSuccessEventArgs.Create(e.UIForm, e.Duration, e.UserData));
655655
}
656656

657657
[UnityEngine.Scripting.Preserve]
@@ -660,7 +660,7 @@ private void OnOpenUIFormFailure(object sender, OpenUIFormFailureEventArgs e)
660660
Log.Warning("Open UI form failure, asset name '{0}', pause covered UI form '{1}', error message '{2}'.", e.UIFormAssetName, e.PauseCoveredUIForm, e.ErrorMessage);
661661
if (m_EnableOpenUIFormFailureEvent)
662662
{
663-
m_EventComponent.Fire(this, e);
663+
m_EventComponent.Fire(this, OpenUIFormFailureEventArgs.Create(e.SerialId, e.UIFormAssetName, e.PauseCoveredUIForm, e.ErrorMessage, e.UserData));
664664
}
665665
}
666666

@@ -692,7 +692,7 @@ private void OnOpenUIFormDependencyAsset(object sender, OpenUIFormDependencyAsse
692692
[UnityEngine.Scripting.Preserve]
693693
private void OnCloseUIFormComplete(object sender, CloseUIFormCompleteEventArgs e)
694694
{
695-
m_EventComponent.Fire(this, e);
695+
m_EventComponent.Fire(this, CloseUIFormCompleteEventArgs.Create(e.SerialId, e.UIFormAssetName, e.UIGroup, e.UserData));
696696
}
697697
}
698698
}

0 commit comments

Comments
 (0)