解决线程调用主线程的问题

get_enabled can only be called from the main thread

        ExecuteMain.Execute (   delegate() {
            StartUI.SetActive( false ) ;
            PrepareUI.SetActive( true ) ;
            lbList.text = str ;
        });
using UnityEngine;
using System.Collections.Generic;
using System.Collections;
using System ;
public class ExecuteMain : MonoBehaviour {

	List<Action>  funcs ;
	public static ExecuteMain  instance ;
	// Use this for initialization
	void Start () {
		instance = this;
		funcs = new List<Action> ();
	}
	
	// Update is called once per frame
	void Update () {
		if (funcs.Count > 0) {
			for( int i = funcs.Count-1 ; i >= 0 ; i --)
			{
				funcs[i]() ;
				funcs.Remove( funcs[i]) ;
			}
		}
	}


	public void  Add(  Action   func)
	{
		funcs.Add (func);
	}

	public static void  Execute(   Action   func)
	{
		instance.Add (func);
	}
}
原文地址:https://www.cnblogs.com/didiaodexi/p/6437355.html