• Unity的UI面板基类


    使用这个组件实现淡入淡出

    1. public abstract class BasePanel : MonoBehaviour
    2. {
    3. //控制面板透明度 用于淡入淡出
    4. private CanvasGroup canvasGroup;
    5. //淡入淡出速度
    6. private float alphaSpeed = 10;
    7. //隐藏还是显示
    8. public bool isShow = false;
    9. //隐藏完毕后做的事
    10. private UnityAction hideCallBack = null;
    11. protected virtual void Awake()
    12. {
    13. //获取面板挂载的组件
    14. canvasGroup = GetComponent<CanvasGroup>();
    15. //如果忘记添加脚本
    16. if (canvasGroup == null)
    17. {
    18. canvasGroup = this.gameObject.AddComponent<CanvasGroup>();
    19. }
    20. }
    21. //虚函数,让子类面板可以重写
    22. protected virtual void Start()
    23. {
    24. //调用注册方法
    25. Init();
    26. }
    27. /// <summary>
    28. /// 注册控件事件方法
    29. /// 子类必须实现
    30. /// </summary>
    31. public abstract void Init();
    32. /// <summary>
    33. /// 显示面板
    34. /// </summary>
    35. public virtual void ShowMe()
    36. {
    37. canvasGroup.alpha = 0;
    38. isShow = true;
    39. }
    40. /// <summary>
    41. /// 关闭面板
    42. /// </summary>
    43. public virtual void HideMe(UnityAction callBack)
    44. {
    45. canvasGroup.alpha = 1;
    46. isShow = false;
    47. hideCallBack = callBack;
    48. }
    49. // Update is called once per frame
    50. void Update()
    51. {
    52. //淡入
    53. //显示 并且 透明度不为1
    54. if (isShow && canvasGroup.alpha!=1)
    55. {
    56. //透明度从0加到1
    57. canvasGroup.alpha += alphaSpeed * Time.deltaTime;
    58. if (canvasGroup.alpha>=1)
    59. {
    60. canvasGroup.alpha = 1;
    61. }
    62. }
    63. //淡出
    64. //不显示 并且 透明度不为0
    65. else if (!isShow && canvasGroup.alpha!=0)
    66. {
    67. //透明度从1减到0
    68. canvasGroup.alpha -= alphaSpeed * Time.deltaTime;
    69. if (canvasGroup.alpha <=0)
    70. {
    71. canvasGroup.alpha = 0;
    72. //淡出后 执行逻辑
    73. hideCallBack?.Invoke();
    74. }
    75. }
    76. }
    77. }

  • 相关阅读:
    web课程设计使用html+css+javascript+jquery技术制作个人介绍6页
    Linux环境配置
    导致静脉炎的因素有哪些呢?
    详细解析 replaceAll()方法
    用nodejs爬虫台湾痞客邦相册
    基于PHP的音乐网站后台管理系统设计与实现
    【Image captioning】ruotianluo/self-critical.pytorch之3—测试脚本test.py
    c++模板
    Orchestrator中的hooks函数
    Unity 使用宏
  • 原文地址:https://blog.csdn.net/holens01/article/details/132756877