test

From , 4 Years ago, written in C#, viewed 54 times.
URL https://pastebin.vip/view/5a99158e
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. /// <summary>
  5. /// 支持暂停的 MonoBehaviour 基类.
  6. /// 游戏中需要暂停功能的逻辑都应该继承该类并将逻辑写到 OnUpdate 及 OnLateUpdate 方法中, 这两个方法在设置为暂停时不会被调用.
  7. /// </summary>
  8. public class PausingBehaviour : MonoBehaviour
  9. {
  10.     /// <summary>
  11.     /// 是否暂停逻辑处理.
  12.     /// </summary>
  13.     public static bool pause { get; set; }
  14.  
  15.     static PausingBehaviour()
  16.     {
  17.         pause = false;
  18.     }
  19.  
  20.     private bool _isPaused;
  21.  
  22.     //没加:protected virtual
  23.     void OnEnable()
  24.     {
  25.         _isPaused = pause;
  26.     }
  27.     /// <summary>
  28.     /// 没加:protected virtual
  29.     /// </summary>
  30.     protected virtual void Update()
  31.     {
  32.         if (!pause)
  33.         {
  34.             if (_isPaused)
  35.             {
  36.                 _isPaused = false;
  37.                 this.OnPauseExit();
  38.             }
  39.  
  40.             this.OnUpdate();
  41.         }
  42.         else
  43.         {
  44.             if (!_isPaused)
  45.             {
  46.                 _isPaused = true;
  47.                 this.OnPauseEnter();
  48.             }
  49.         }
  50.     }
  51.  
  52.     /// <summary>
  53.     /// 可暂停的逻辑更新方法.
  54.     /// </summary>
  55.     protected virtual void OnUpdate()
  56.     {
  57.         //Debug.Log("{OnUpdate} pause = " + PausingBehaviour.pause);
  58.  
  59.     }
  60.  
  61.     //没加:protected virtual
  62.     void LateUpdate()
  63.     {
  64.         if (!pause)
  65.         {
  66.             this.OnLateUpdate();
  67.         }
  68.     }
  69.  
  70.     /// <summary>
  71.     /// 可暂停的逻辑更新方法.
  72.     /// </summary>
  73.     protected virtual void OnLateUpdate()
  74.     {
  75.     }
  76.  
  77.     /// <summary>
  78.     /// 暂停开始时会调用该方法.
  79.     /// </summary>
  80.     protected virtual void OnPauseEnter()
  81.     {
  82.         Debug.Log("Enter");
  83.  
  84.     }
  85.  
  86.     /// <summary>
  87.     /// 暂停结束时会调用该方法.
  88.     /// </summary>
  89.     protected virtual void OnPauseExit()
  90.     {
  91.         Debug.Log("Exit");
  92.     }
  93. }
  94.  

Reply to "test"

Here you can reply to the paste above

captcha

https://burned.cc - Burn After Reading Website