FGUI 播报击杀信息,当上一个显示结束,在显示下一个
时间: 2024-03-09 15:51:02 浏览: 89
信息插播,一个窗口控制另一个窗口的显示
要实现在上一个击杀信息显示完毕后再显示下一个击杀信息,可以在代码中使用Tween的OnComplete回调函数来实现。以下是一个简单的示例代码:
```
using UnityEngine;
using FairyGUI;
public class KillInfoPanel : MonoBehaviour
{
private GComponent _mainView;
private GList _killList;
void Start()
{
_mainView = this.GetComponent<UIPanel>().ui;
_killList = _mainView.GetChild("killList").asList;
// 监听击杀事件
GameEventManager.Instance.AddListener(GameEventType.Kill, OnKill);
}
void OnDestroy()
{
GameEventManager.Instance.RemoveListener(GameEventType.Kill, OnKill);
}
private void OnKill(GameEvent evt)
{
// 获取击杀信息
string killerName = evt.GetParam<string>(0);
string victimName = evt.GetParam<string>(1);
// 在列表中添加新的击杀信息
_killList.AddItem(killerName + " killed " + victimName);
// 播放列表中的所有击杀信息
PlayKillList();
}
private void PlayKillList()
{
// 按照顺序播放列表中的所有击杀信息
for (int i = 0; i < _killList.numItems; i++)
{
GComponent killInfo = _killList.GetChildAt(i).asCom;
killInfo.alpha = 0;
// 显示当前击杀信息
killInfo.TweenFade(1, 0.5f).OnComplete(() =>
{
// 隐藏当前击杀信息
killInfo.TweenFade(0, 0.5f).OnComplete(() =>
{
// 播放下一个击杀信息
if (i < _killList.numItems - 1)
{
PlayKillList();
}
});
});
// 等待上一个击杀信息显示完毕
break;
}
}
}
```
这段代码在PlayKillList函数中使用Tween的OnComplete回调函数来实现在上一个击杀信息显示完毕后再显示下一个击杀信息。当显示当前击杀信息时,它会设置其alpha为0,然后使用TweenFade函数将其渐隐渐现地显示出来。当当前击杀信息显示完毕后,它会使用TweenFade函数将其渐隐消失,并在渐隐消失完毕后使用回调函数来播放下一个击杀信息。如果当前击杀信息是最后一个,那么就不再播放下一个击杀信息。在等待上一个击杀信息显示完毕时,它使用break语句来中断循环,以确保只有上一个击杀信息显示完毕后才会显示下一个击杀信息。
阅读全文