当前位置: 首页 > news >正文

Unity公共Mono模块:非继承脚本也能更新

公共Mono模块

让不继承MonoBehaviour的脚本也可以

1.利用帧更新或定时更新处理逻辑

2.利用协同程序处理逻辑

实现公共Mono模块

1.创建MonoMgr继承MonoBehaviour的单例模式基类

2.实现Update、FixedUpdate、LateUpdate生命周期函数

3.声明对应事件或委托用于存储外部函数,并提供添加移除方法,从而达到让不继承MonoBehaviour的脚本可以执行帧更新或定时更新的目的

4.声明协同程序开启关闭函数,从而达到让不继承MonoBehaviour的脚本可以执行协同程序的目的

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;/// <summary>
/// 公共Mono模块管理器
/// </summary>
public class MonoMgr : SingletonAutoMono<MonoMgr>
{private event UnityAction updateEvent;private event UnityAction fixedUpdateEvent;private event UnityAction lateUpdatetEvent;#region 添加事件/// <summary>/// 添加Update帧更新监听函数/// </summary>/// <param name="unityAction"></param>public void AddUpdateListener(UnityAction unityAction){ updateEvent += unityAction;}/// <summary>/// 添加FixedUpdate帧更新监听函数/// </summary>/// <param name="unityAction"></param>public void AddFixedUpdateListener(UnityAction unityAction){fixedUpdateEvent += unityAction;}/// <summary>/// 添加LateUpdate帧更新监听函数/// </summary>/// <param name="unityAction"></param>public void AddLateUpdateListener(UnityAction unityAction){lateUpdatetEvent += unityAction;}#endregion#region 移除事件/// <summary>/// 移除Update帧更新监听函数/// </summary>/// <param name="unityAction"></param>public void RemoveUpdateListener(UnityAction unityAction){updateEvent -= unityAction;}/// <summary>/// 移除FixedUpdate帧更新监听函数/// </summary>/// <param name="unityAction"></param>public void RemoveFixedUpdateListener(UnityAction unityAction){fixedUpdateEvent -= unityAction;}/// <summary>/// 移除LateUpdate帧更新监听函数/// </summary>/// <param name="unityAction"></param>public void RemoveLateUpdateListener(UnityAction unityAction){lateUpdatetEvent -= unityAction;}#endregionprivate void Update(){updateEvent?.Invoke();}private void FixedUpdate(){fixedUpdateEvent?.Invoke();}private void LateUpdate(){lateUpdatetEvent?.Invoke();}}
http://www.dtcms.com/a/527928.html

相关文章:

  • 使用 Flownex 对发电厂周期进行建模
  • 前端基础:JS基础语法
  • 中山网站建设的企业深圳哪些公司做网站
  • 网站 验收访问的网页正在升级中
  • 29-机器学习与大模型开发数学教程-3-3 张量的运算(Einstein求和约定)
  • 天猫网站建设的优势有哪些室内装修3d动态演示效果图
  • 如何提升网站的搜索排名专业外贸网站建设公司价格
  • 【GESP】C++四级真题 luogu-B4361 [GESP202506 四级] 排序
  • 出版社类网站模板手机商城网站源码
  • 旅游网站建设实施方案湖南建筑工程集团
  • 投资融资理财网站模板如何网站专题策划
  • 淄博网站制作优化安装百度到手机桌面
  • 江苏和住房建设厅网站东莞樟木头网站建设公司
  • 内蒙古工程建设招投标中心网站网站编辑适不适合男生做
  • 网站开发的经费预算跨境电商是干嘛的
  • 高端网站定制设计公司果蔬网站规划建设方案
  • 网站开发怎么接入支付宝app管理系统
  • 如何查看网站权重百度下载安装app
  • 甜点网站要怎么做温州网页设计培训学校
  • 谷歌seo网站怎么做产品分类网站虚拟空间购买
  • wordpress全站伪静态电商网站合作
  • 寿光公司做网站wordpress 建网站 vpn
  • 小说阅读网站开发设计做网站的好处和坏处
  • 钓鱼网站制作天门网站
  • 黄冈手机网站建设律师的网站模板
  • 九江做网站如何创建自己的博客网站
  • 怎么做网站 高中信息技术简单的广告设计怎么做
  • 网站定制文章列表项怎么做2012版wordpress
  • 八戒网站做推广广东网页制作二级考试题目
  • 手机网站建设价格明细表wordpress内容关键字