* created by shenjun
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
namespace shenjun
{
[LuaCallCSharp]
public class Coroutine : MonoBehaviour {
LuaEnv luaEnv = new LuaEnv();
void Start () {
luaEnv.DoString("require 'LuaCoroutine'");
System.Action luaStart = luaEnv.Global.Get<System.Action>("Start");
if (null != luaStart)
luaStart();
}
void Update () {
}
private void OnDestroy()
{
luaEnv.Dispose();
}
public void InvokeSpawn(object yield_return, System.Action callback)
{
StartCoroutine(SpawnObj(yield_return, callback));
}
IEnumerator SpawnObj(object yield_return, System.Action callback)
{
for (int i = 0; i < 10; i++)
{
GameObject go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
go.transform.position = Random.insideUnitSphere * 5;
if(yield_return is IEnumerator)
{
else
{
yield return yield_return;
}
}
callback();
}
}
[LuaCallCSharp]
public static class CoroutineConfig
{
public static List<System.Type> LuaCallCSharp
{
get{
return new List<System.Type>()
{
typeof(WaitForSeconds)
};
}
}
}