public static void RemoveCallback(OnScreenResize osr)
 {
     if (_onScreenResize != null)
     {
         _onScreenResize -= osr;
     }
 }
        public static void Init()
        {
            _width  = Screen.width;
            _height = Screen.height;

            _onScreenResize = null;
        }
 private void OnDestroy()
 {
     if (_instance == this)
     {
         _instance      = null;
         onScreenResize = null;
     }
 }
        public static void ClearupCallback()
        {
            if (_onScreenResize != null)
            {
                OnScreenResize newOnScreenResize = null;
                Delegate[]     ds      = _onScreenResize.GetInvocationList();
                int            dsCount = ds.Length;
                if (dsCount > 0)
                {
                    newOnScreenResize = ds[0] as OnScreenResize;
                }
                for (int i = 0; i < dsCount; ++i)
                {
                    newOnScreenResize += (ds[i] as OnScreenResize);
                }

                _onScreenResize = newOnScreenResize;
            }
        }
 public static void AddCallback(OnScreenResize osr)
 {
     if (_onScreenResize == null)
     {
         _onScreenResize = osr;
     }
     else
     {
         Delegate[] ds      = _onScreenResize.GetInvocationList();
         int        dsCount = ds.Length;
         for (int i = 0; i < dsCount; ++i)
         {
             if (ds[i].Equals(osr))
             {
                 BaseLogger.Warning("ScreenResizeHelper  AddCallback  duplicate ({0})", osr);
             }
         }
         _onScreenResize -= osr;
     }
 }
 public static void RemoveAllCallback()
 {
     _onScreenResize = null;
 }