如何使用
上一篇记录了内部结构
这一篇主要记录下如何使用MonoSystem与协程工具
MonoSystem
新建脚本MonoTest.cs
脚本内容如下:
using System;
using System.Collections;
using System.Collections.Generic;
using JKFrame;
using UnityEngine;
public class MonoTest:MonoBehaviour
{
private void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
MonoAction.Init();
}
if (Input.GetKeyDown(KeyCode.S))
{
MonoAction.Destroy();
}
}
}
public class MonoAction
{
public static void Init()
{
MonoSystem.Init();
MonoSystem.AddUpdateListener(UpdateAct);
Debug.Log("添加Update监听");
}
public static void Destroy()
{
MonoSystem.RemoveUpdateListener(UpdateAct);
Debug.Log("移除Update监听");
}
private static void UpdateAct()
{
Debug.Log("调用了Update");
}
}
按下A键的时候添加update的监听,按下S键的时候移除update的监听
看下运行的效果
协程
我们再来看下协程工具的相关用法
在MonoTest脚本的基础上,我们改进下
声明一个协程方法
static IEnumerator EnumeratorTest()
{
yield return new WaitForSeconds(2f);
Debug.Log("2s协程测试");
}
声明一个Coroutine字段
private static Coroutine coroutine;
启动协程的时候要用coroutine接收下回调
看下全部代码
using System;
using System.Collections;
using System.Collections.Generic;
using JKFrame;
using UnityEngine;
public class MonoTest:MonoBehaviour
{
private void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
MonoAction.Init();
}
if (Input.GetKeyDown(KeyCode.S))
{
MonoAction.Destroy();
}
}
}
public class MonoAction
{
private static Coroutine coroutine;
public static void Init()
{
MonoSystem.Init();
// MonoSystem.AddUpdateListener(UpdateAct);
// Debug.Log("添加Update监听");
Debug.Log("开始协程");
coroutine = MonoSystem.Start_Coroutine(EnumeratorTest());
}
public static void Destroy()
{
// MonoSystem.RemoveUpdateListener(UpdateAct);
// Debug.Log("移除Update监听");
MonoSystem.Stop_Coroutine(coroutine);
Debug.Log("结束协程");
}
private static void UpdateAct()
{
Debug.Log("调用了Update");
}
static IEnumerator EnumeratorTest()
{
yield return new WaitForSeconds(2f);
Debug.Log("2s协程测试");
}
}
测试下: