static int GetAllObjectPools(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 1 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                GameFramework.ObjectPool.ObjectPoolBase[]      o   = obj.GetAllObjectPools();
                ToLua.Push(L, o);
                return(1);
            }
            else if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(bool)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                bool arg0 = LuaDLL.lua_toboolean(L, 2);
                GameFramework.ObjectPool.ObjectPoolBase[] o = obj.GetAllObjectPools(arg0);
                ToLua.Push(L, o);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: UnityGameFramework.Runtime.ObjectPoolComponent.GetAllObjectPools"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
    static int GetObjectPool(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.GetObjectPool(arg0);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(string)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                string      arg1 = ToLua.ToString(L, 3);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.GetObjectPool(arg0, arg1);
                ToLua.PushObject(L, o);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: UnityGameFramework.Runtime.ObjectPoolComponent.GetObjectPool"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
 public override void Initialize(params object[] args)
 {
     m_ObjectPoolComponent = GameEntry.GetComponent <ObjectPoolComponent>();
     if (m_ObjectPoolComponent == null)
     {
         Log.Fatal("Object pool component is invalid.");
         return;
     }
 }
예제 #4
0
        /// <summary>
        /// 内存不足时调用
        /// </summary>
        private void OnLowMemory()
        {
            Log.Info("Low memory reported");
            ObjectPoolComponent objectPoolComponent = GameEntry.GetComponent <ObjectPoolComponent>();

            if (objectPoolComponent != null)
            {
                objectPoolComponent.ReleaseAllUnused();
            }
        }
 static int ReleaseAllUnused(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.CheckObject(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent));
         obj.ReleaseAllUnused();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
예제 #6
0
            protected override void OnDrawScrollableWindow()
            {
                GUILayout.Label("<b>Operations</b>");
                GUILayout.BeginVertical("box");
                {
                    ObjectPoolComponent objectPoolComponent = GameEntry.GetComponent <ObjectPoolComponent>();
                    if (objectPoolComponent != null)
                    {
                        if (GUILayout.Button("Object Pool Release", GUILayout.Height(30f)))
                        {
                            objectPoolComponent.Release();
                        }

                        if (GUILayout.Button("Object Pool Release All Unused", GUILayout.Height(30f)))
                        {
                            objectPoolComponent.ReleaseAllUnused();
                        }
                    }

                    ResourceComponent resourceCompoent = GameEntry.GetComponent <ResourceComponent>();
                    if (resourceCompoent != null)
                    {
                        if (GUILayout.Button("Unload Unused Assets", GUILayout.Height(30f)))
                        {
                            resourceCompoent.ForceUnloadUnusedAssets(false);
                        }

                        if (GUILayout.Button("Unload Unused Assets and Garbage Collect", GUILayout.Height(30f)))
                        {
                            resourceCompoent.ForceUnloadUnusedAssets(true);
                        }
                    }

                    if (GUILayout.Button("Shutdown Game Framework (None)", GUILayout.Height(30f)))
                    {
                        GameEntry.Shutdown(ShutdownType.None);
                    }
                    if (GUILayout.Button("Shutdown Game Framework (Restart)", GUILayout.Height(30f)))
                    {
                        GameEntry.Shutdown(ShutdownType.Restart);
                    }
                    if (GUILayout.Button("Shutdown Game Framework (Quit)", GUILayout.Height(30f)))
                    {
                        GameEntry.Shutdown(ShutdownType.Quit);
                    }
                }
                GUILayout.EndVertical();
            }
    static int get_Count(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)o;
            int ret = obj.Count;
            LuaDLL.lua_pushinteger(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index Count on a nil value" : e.Message));
        }
    }
예제 #8
0
        private void OnLowMemory()
        {
            Log.Info("Low memory reported...");

            ObjectPoolComponent objectPoolComponent = GameEntry.GetComponent <ObjectPoolComponent>();

            if (objectPoolComponent != null)
            {
                objectPoolComponent.ReleaseAllUnused();
            }

            ResourceComponent resourceCompoent = GameEntry.GetComponent <ResourceComponent>();

            if (resourceCompoent != null)
            {
                resourceCompoent.ForceUnloadUnusedAssets(true);
            }
        }
            protected override void OnDrawScrollableWindow()
            {
                GUILayout.Label("<b>Operation Settings</b>");
                GUILayout.BeginVertical("box");
                {
                    ObjectPoolComponent objectPoolComponent = GameEntry.GetComponent <ObjectPoolComponent>();
                    if (objectPoolComponent != null)
                    {
                        if (GUILayout.Button("Object Pool Release", GUILayout.Height(30f)))
                        {
                            objectPoolComponent.Release();
                        }

                        if (GUILayout.Button("Object Pool Release All Unused", GUILayout.Height(30f)))
                        {
                            objectPoolComponent.ReleaseAllUnused();
                        }
                    }

                    ResourceComponent resourceCompoent = GameEntry.GetComponent <ResourceComponent>();
                    if (resourceCompoent != null)
                    {
                        if (GUILayout.Button("Unload Unused Assets", GUILayout.Height(30f)))
                        {
                            resourceCompoent.UnloadUnusedAssets(false, "release from debugger");
                        }

                        if (GUILayout.Button("Unload Unused Assets and Garbage Collect", GUILayout.Height(30f)))
                        {
                            resourceCompoent.UnloadUnusedAssets(true, "release from debugger");
                        }
                    }

                    if (GUILayout.Button("Restart Game Framework", GUILayout.Height(30f)))
                    {
                        GameEntry.Restart();
                    }
                    if (GUILayout.Button("Shutdown Game Framework", GUILayout.Height(30f)))
                    {
                        GameEntry.Shutdown();
                    }
                }
                GUILayout.EndVertical();
            }
    static int CreateMultiSpawnObjectPool(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(float)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                float       arg1 = (float)LuaDLL.lua_tonumber(L, 3);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0, arg1);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(string)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                string      arg1 = ToLua.ToString(L, 3);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0, arg1);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 4 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(float), typeof(int)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                float       arg1 = (float)LuaDLL.lua_tonumber(L, 3);
                int         arg2 = (int)LuaDLL.lua_tonumber(L, 4);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0, arg1, arg2);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 4 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(int), typeof(float)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                int         arg1 = (int)LuaDLL.lua_tonumber(L, 3);
                float       arg2 = (float)LuaDLL.lua_tonumber(L, 4);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0, arg1, arg2);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 4 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(string), typeof(float)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                string      arg1 = ToLua.ToString(L, 3);
                float       arg2 = (float)LuaDLL.lua_tonumber(L, 4);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0, arg1, arg2);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 5 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(int), typeof(float), typeof(int)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                int         arg1 = (int)LuaDLL.lua_tonumber(L, 3);
                float       arg2 = (float)LuaDLL.lua_tonumber(L, 4);
                int         arg3 = (int)LuaDLL.lua_tonumber(L, 5);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0, arg1, arg2, arg3);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 5 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(string), typeof(float), typeof(int)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                string      arg1 = ToLua.ToString(L, 3);
                float       arg2 = (float)LuaDLL.lua_tonumber(L, 4);
                int         arg3 = (int)LuaDLL.lua_tonumber(L, 5);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0, arg1, arg2, arg3);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 5 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(string), typeof(int), typeof(float)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                string      arg1 = ToLua.ToString(L, 3);
                int         arg2 = (int)LuaDLL.lua_tonumber(L, 4);
                float       arg3 = (float)LuaDLL.lua_tonumber(L, 5);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0, arg1, arg2, arg3);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 6 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.ObjectPoolComponent), typeof(System.Type), typeof(string), typeof(int), typeof(float), typeof(int)))
            {
                UnityGameFramework.Runtime.ObjectPoolComponent obj = (UnityGameFramework.Runtime.ObjectPoolComponent)ToLua.ToObject(L, 1);
                System.Type arg0 = (System.Type)ToLua.ToObject(L, 2);
                string      arg1 = ToLua.ToString(L, 3);
                int         arg2 = (int)LuaDLL.lua_tonumber(L, 4);
                float       arg3 = (float)LuaDLL.lua_tonumber(L, 5);
                int         arg4 = (int)LuaDLL.lua_tonumber(L, 6);
                GameFramework.ObjectPool.ObjectPoolBase o = obj.CreateMultiSpawnObjectPool(arg0, arg1, arg2, arg3, arg4);
                ToLua.PushObject(L, o);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: UnityGameFramework.Runtime.ObjectPoolComponent.CreateMultiSpawnObjectPool"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }