unity---公共模块MonoController
公共模块
如果有很多类使用Update()函数,会导致性能浪费
如果函数统一在一个Update()中执行
代码
上述,需要将脚本挂载到物体上,
故新建了一个管理类MonoMgr
Mgr另外的作用
可以提供给外部添加协程的方法
代码汇总
MonoController
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class MonoController : MonoBehaviour
{
// Start is called before the first frame update
private event UnityAction updateEvent;
void Start()
{
DontDestroyOnLoad(this.gameObject);
}
// Update is called once per frame
void Update()
{
if(updateEvent!=null){
updateEvent();
}
}
public void AddUpdateListener(UnityAction fun){
updateEvent += fun;
}
public void RemoveUpdateListener(UnityAction fun){
updateEvent -= fun;
}
}
MonoMgr
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class MonoMgr : Singleton
{
// Start is called before the first frame update
private MonoController controller;
public MonoMgr()
{
GameObject obj = new GameObject("MonoController");
controller = obj.AddComponent();
}
// Update is called once per frame
public void AddUpdateListener(UnityAction fun){
controller.AddUpdateListener(fun);
}
public void RemoveUpdateListener(UnityAction fun){
controller.RemoveUpdateListener(fun);
}
}
用法示范
- 新建一个继承至MonoBehaviour的类
- 在新建一个需要执行的类
- 将第一个类挂载到物体上,即可。