123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using FairyGUI;
- using XGame.Framework.Asyncs;
- namespace XGame.Framework.FGUI
- {
- public class GObjectFromPackageAsync : Async, IGObjectLoadAsync
- {
- private bool _isRemoveAll;
- public string PackageName { get; private set; }
- public string ObjectName { get; private set; }
- public GObject Result { get; private set; }
- public GObjectFromPackageAsync(string pkgName, string objName)
- {
- PackageName = pkgName;
- ObjectName = objName;
- _isRemoveAll = false;
- }
- protected override void OnRemoveAll()
- {
- _isRemoveAll = true;
- Result = null;
- }
- public void Start()
- {
- if (UIPackage.GetByName(PackageName) == null)
- {
- Log.Error($"UIViewLoadFromPackageAsync.Start UIPackage is null. Paqckage:{PackageName} Object:{ObjectName}");
- Completed();
- return;
- }
- UIPackage.CreateObjectAsync(PackageName, ObjectName, (GObject result) =>
- {
- if (result == null)
- {
- Log.Error($"UIPackage.CreateObjectAsync result is null. Paqckage:{PackageName} Object:{ObjectName}");
- }
- else if (_isRemoveAll)
- {
- // 该异步已结束
- Log.Info($"UIPackage.CreateObjectAsync Callback, Async is Stopped. Paqckage:{PackageName} Object:{ObjectName}");
- result.Dispose();
- }
- else
- {
- Result = result;
- }
- Completed();
- });
- }
- }
- }
|