static int UnloadScene(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 2 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.SceneComponent), typeof(string))) { UnityGameFramework.Runtime.SceneComponent obj = (UnityGameFramework.Runtime.SceneComponent)ToLua.ToObject(L, 1); string arg0 = ToLua.ToString(L, 2); obj.UnloadScene(arg0); return(0); } else if (count == 3 && TypeChecker.CheckTypes(L, 1, typeof(UnityGameFramework.Runtime.SceneComponent), typeof(string), typeof(object))) { UnityGameFramework.Runtime.SceneComponent obj = (UnityGameFramework.Runtime.SceneComponent)ToLua.ToObject(L, 1); string arg0 = ToLua.ToString(L, 2); object arg1 = ToLua.ToVarObject(L, 3); obj.UnloadScene(arg0, arg1); return(0); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: UnityGameFramework.Runtime.SceneComponent.UnloadScene")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int GetLoadingSceneAssetNames(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); UnityGameFramework.Runtime.SceneComponent obj = (UnityGameFramework.Runtime.SceneComponent)ToLua.CheckObject(L, 1, typeof(UnityGameFramework.Runtime.SceneComponent)); string[] o = obj.GetLoadingSceneAssetNames(); ToLua.Push(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int SceneIsUnloading(IntPtr L) { try { ToLua.CheckArgsCount(L, 2); UnityGameFramework.Runtime.SceneComponent obj = (UnityGameFramework.Runtime.SceneComponent)ToLua.CheckObject(L, 1, typeof(UnityGameFramework.Runtime.SceneComponent)); string arg0 = ToLua.CheckString(L, 2); bool o = obj.SceneIsUnloading(arg0); LuaDLL.lua_pushboolean(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int get_MainCamera(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); UnityGameFramework.Runtime.SceneComponent obj = (UnityGameFramework.Runtime.SceneComponent)o; UnityEngine.Camera ret = obj.MainCamera; ToLua.Push(L, ret); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index MainCamera on a nil value" : e.Message)); } }
/// <summary> /// 异步卸载场景。 /// </summary> /// <param name="sceneAssetName">要卸载场景资源的名称。</param> /// <param name="unloadSceneCallbacks">卸载场景回调函数集。</param> /// <param name="userData">用户自定义数据。</param> public void UnloadScene(string sceneAssetName, UnloadSceneCallbacks unloadSceneCallbacks, object userData) { if (string.IsNullOrEmpty(sceneAssetName)) { Log.Error("Scene asset name is invalid."); return; } if (unloadSceneCallbacks == null) { Log.Error("Unload scene callbacks is invalid."); return; } if (!ExistsFile(sceneAssetName)) { Log.Error("Scene '{0}' is not exist.", sceneAssetName); return; } #if UNITY_5_5_OR_NEWER AsyncOperation asyncOperation = SceneManager.UnloadSceneAsync(sceneAssetName); if (asyncOperation == null) { return; } m_UnloadSceneInfos.AddLast(new UnloadSceneInfo(asyncOperation, sceneAssetName, unloadSceneCallbacks, userData)); #else if (SceneManager.UnloadScene(SceneComponent.GetSceneName(sceneAssetName))) { if (unloadSceneCallbacks.UnloadSceneSuccessCallback != null) { unloadSceneCallbacks.UnloadSceneSuccessCallback(sceneAssetName, userData); } } else { if (unloadSceneCallbacks.UnloadSceneFailureCallback != null) { unloadSceneCallbacks.UnloadSceneFailureCallback(sceneAssetName, userData); } } #endif }
/// <summary> /// 卸载场景。 /// </summary> /// <param name="sceneAssetName">场景资源名称。</param> /// <param name="unloadSceneCallbacks">卸载场景回调函数集。</param> /// <param name="userData">用户自定义数据。</param> public override void UnloadScene(string sceneAssetName, UnloadSceneCallbacks unloadSceneCallbacks, object userData) { #if UNITY_5_3 || UNITY_5_4 if (SceneManager.UnloadScene(SceneComponent.GetSceneName(sceneAssetName))) { if (unloadSceneCallbacks.UnloadSceneSuccessCallback != null) { unloadSceneCallbacks.UnloadSceneSuccessCallback(sceneAssetName, userData); } } else { if (unloadSceneCallbacks.UnloadSceneFailureCallback != null) { unloadSceneCallbacks.UnloadSceneFailureCallback(sceneAssetName, userData); } } #else StartCoroutine(UnloadSceneCo(sceneAssetName, unloadSceneCallbacks, userData)); #endif }
/// <summary> /// 异步加载场景。 /// </summary> /// <param name="sceneAssetName">要加载场景资源的名称。</param> /// <param name="priority">加载场景资源的优先级。</param> /// <param name="loadSceneCallbacks">加载场景回调函数集。</param> /// <param name="userData">用户自定义数据。</param> public void LoadScene(string sceneAssetName, int priority, LoadSceneCallbacks loadSceneCallbacks, object userData) { if (string.IsNullOrEmpty(sceneAssetName)) { Log.Error("Scene asset name is invalid."); return; } if (!sceneAssetName.StartsWith("Assets/") || !sceneAssetName.EndsWith(".unity")) { Log.Error("Scene asset name '{0}' is invalid.", sceneAssetName); return; } if (loadSceneCallbacks == null) { Log.Error("Load scene callbacks is invalid."); return; } if (!ExistsFile(sceneAssetName)) { Log.Error("Scene '{0}' is not exist.", sceneAssetName); return; } #if UNITY_5_5_OR_NEWER AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(sceneAssetName, LoadSceneMode.Additive); #else AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(SceneComponent.GetSceneName(sceneAssetName), LoadSceneMode.Additive); #endif if (asyncOperation == null) { return; } m_LoadSceneInfos.AddLast(new LoadSceneInfo(asyncOperation, sceneAssetName, priority, DateTime.Now, loadSceneCallbacks, userData)); }