① UnityMainThreadDispatcher
作为工具类,用于在非主线程中将任务调度到主线程执行。
using System;
using System.Collections.Generic;
using UnityEngine;
public class UnityMainThreadDispatcher : MonoBehaviour
{
// 用于存储需要在主线程中执行的任务队列
private static readonly Queue<Action> _executionQueue = new Queue<Action>();
// 单例实例
private static UnityMainThreadDispatcher _instance = null;
// 获取单例实例的方法
public static UnityMainThreadDispatcher Instance()
{
// 如果实例为空,尝试在场景中查找
if (_instance == null)
{
_instance = FindObjectOfType<UnityMainThreadDispatcher>();
// 如果场景中没有找到,创建一个新的 GameObject 并附加此脚本
if (_instance == null)
{
_instance = new GameObject("UnityMainThreadDispatcher").AddComponent<UnityMainT