Unity框架:JKFrame2.0学习笔记(十一)——MonoSystem(1)
  v5bEezpf7PPs 2023年11月02日 86 0

内部结构

MonoSystem

MonoSystem是继承MonoBehaviour的,声明几个action,在MonoBehaviour的声明周期内调用,实现了不继承MonoBehaviour也可以用mono的生命周期。

包括以下几个方法可供外部调用:

Init:初始化,获取MonoSystem的实例

AddUpdateListener:添加Update监听

RemoveUpdateListener: 移除Update监听

AddLateUpdateListener:添加LateUpdate监听

RemoveLateUpdateListener:移除LateUpdate监听

AddFixedUpdateListener:添加FixedUpdate监听

RemoveFixedUpdateListener:移除FixedUpdate监听

这几个方法又是如何做到在mono声明周期内调用的呢?

如下:

 private void Update()
        {
            updateEvent?.Invoke();
        }
        private void LateUpdate()
        {
            lateUpdateEvent?.Invoke();
        }
        private void FixedUpdate()
        {
            fixedUpdateEvent?.Invoke();
        }

协程

声明一个字典,把用的协程存放起来,进行统一管理,字典的结构是这样的Dictionary<object, List<Coroutine>>,对象作为key,对象对应的协程list作为value。

这其中也用到之前的对象池系统,主要是用在协程的停止和启动,用来回收协程

对携程相关的操作方法包括以下几个:

Start_Coroutine:启动一个协程

Start_Coroutine(重载):启动一个协程序并且绑定某个对象

Stop_Coroutine:停止一个协程序

Stop_Coroutine(重载):停止一个协程序并基于某个对象

StopAllCoroutine:整个系统全部协程都会停止

只有基于对象的操作,才会用到协程的字典和对象池,普通的协程启动和停止就是单纯的基于MonoSystem对象。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

v5bEezpf7PPs