GameAsyncOperation.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. 
  2. namespace YooAsset
  3. {
  4. public abstract class GameAsyncOperation : AsyncOperationBase
  5. {
  6. internal override void InternalStart()
  7. {
  8. OnStart();
  9. }
  10. internal override void InternalUpdate()
  11. {
  12. OnUpdate();
  13. }
  14. internal override void InternalAbort()
  15. {
  16. OnAbort();
  17. }
  18. internal override void InternalWaitForAsyncComplete()
  19. {
  20. OnWaitForAsyncComplete();
  21. }
  22. /// <summary>
  23. /// 异步操作开始
  24. /// </summary>
  25. protected abstract void OnStart();
  26. /// <summary>
  27. /// 异步操作更新
  28. /// </summary>
  29. protected abstract void OnUpdate();
  30. /// <summary>
  31. /// 异步操作终止
  32. /// </summary>
  33. protected abstract void OnAbort();
  34. /// <summary>
  35. /// 异步等待完成
  36. /// </summary>
  37. protected virtual void OnWaitForAsyncComplete() { }
  38. /// <summary>
  39. /// 异步操作系统是否繁忙
  40. /// </summary>
  41. protected bool IsBusy()
  42. {
  43. return OperationSystem.IsBusy;
  44. }
  45. /// <summary>
  46. /// 终止异步操作
  47. /// </summary>
  48. protected void Abort()
  49. {
  50. AbortOperation();
  51. }
  52. }
  53. }