| | |
| | | ScrollTipDetail tipDetail = await ScrollTip.Request(); |
| | | if (tipDetail != null) |
| | | { |
| | | // 首次登录时 pool 为 null,Request() 异步加载预制体耗时 >100ms。 |
| | | // LoopTipReceiveEvent 每 100ms 重入,可能已有另一次调用先消耗了 m_Hints[0]。 |
| | | // 若 await 返回时 m_Hints 已空,必须将 tipDetail 归还池,否则它会被插入 Canvas 但 |
| | | // 永远不会播放动画,导致提示条卡在屏幕上(第一次登录复现的根因)。 |
| | | if (ScrollTip.m_Hints.Count == 0) |
| | | { |
| | | ScrollTip.Release(tipDetail, false); |
| | | return; |
| | | } |
| | | tipDetail.SetTipConfig(m_TipShowTime, m_TipHideTime, m_TipDistance); |
| | | ScrollTip.m_ActiveTips.Add(tipDetail); |
| | | var rt = tipDetail.transform; |