Пример #1
0
    static int StartCoroutine(IntPtr L)
    {
        int count = LuaDLL.lua_gettop(L);

        Type[] types0 = { typeof(FSMBase), typeof(string) };
        Type[] types1 = { typeof(FSMBase), typeof(IEnumerator) };

        if (count == 2 && LuaScriptMgr.CheckTypes(L, types0, 1))
        {
            FSMBase   obj  = LuaScriptMgr.GetNetObject <FSMBase>(L, 1);
            string    arg0 = LuaScriptMgr.GetString(L, 2);
            Coroutine o    = obj.StartCoroutine(arg0);
            LuaScriptMgr.PushObject(L, o);
            return(1);
        }
        else if (count == 2 && LuaScriptMgr.CheckTypes(L, types1, 1))
        {
            FSMBase     obj  = LuaScriptMgr.GetNetObject <FSMBase>(L, 1);
            IEnumerator arg0 = LuaScriptMgr.GetNetObject <IEnumerator>(L, 2);
            Coroutine   o    = obj.StartCoroutine(arg0);
            LuaScriptMgr.PushObject(L, o);
            return(1);
        }
        else if (count == 3)
        {
            FSMBase   obj  = LuaScriptMgr.GetNetObject <FSMBase>(L, 1);
            string    arg0 = LuaScriptMgr.GetLuaString(L, 2);
            object    arg1 = LuaScriptMgr.GetVarObject(L, 3);
            Coroutine o    = obj.StartCoroutine(arg0, arg1);
            LuaScriptMgr.PushObject(L, o);
            return(1);
        }
        else
        {
            LuaDLL.luaL_error(L, "invalid arguments to method: FSMBase.StartCoroutine");
        }

        return(0);
    }