Ulua_toLua_基本案例(六)_LuaCoroutine2

Ulua_toLua_基本案例(六)_LuaCoroutine2


using UnityEngine;
using System.Collections;
using LuaInterface;

public class TestCoroutine2 : MonoBehaviour 
{
    LuaState luaState = null;    

    string script =
    @"
        function CoExample()            
            WaitForSeconds(2)
            print('WaitForSeconds end time: '.. UnityEngine.Time.time)
            WaitForFixedUpdate()
            print('WaitForFixedUpdate end frameCount: '..UnityEngine.Time.frameCount)
            WaitForEndOfFrame()
            print('WaitForEndOfFrame end frameCount: '..UnityEngine.Time.frameCount)
            Yield(null)
            print('yield null end frameCount: '..UnityEngine.Time.frameCount)
            Yield(0)
            print('yield(0) end frameCime: '..UnityEngine.Time.frameCount)
            local www = UnityEngine.WWW('http://www.baidu.com')
            Yield(www)
            print('yield(www) end time: '.. UnityEngine.Time.time)
            local s = tolua.tolstring(www.bytes)
            print(s:sub(1, 128))
            print('coroutine over')
        end

        function TestCo()
            print('TestCo')
            local co = coroutine.create(CoExample)
                        
            local flag, msg = coroutine.resume(co)
            
            if not flag then
                error(msg)
            end
        end
    ";

	void Awake () 
    {
        luaState = new LuaState();
        luaState.Start();
        LuaBinder.Bind(luaState);
        LuaCoroutine.Register(luaState, this);

        luaState.DoString(script);
        LuaFunction func = luaState.GetFunction("TestCo");
        func.Call();
        func.Dispose();
	}

    void OnDestroy()
    {
        luaState.Dispose();
        luaState = null;
    }
}


原文地址:https://www.cnblogs.com/blfbuaa/p/7364880.html