浏览代码

修复重复加载预制体/场景问题

gongyan 2 年之前
父节点
当前提交
3fe743e25c
共有 1 个文件被更改,包括 20 次插入2 次删除
  1. 20 2
      Assets/BundleResource/LuaScripts/UI/ZUILoginPanel.lua.txt

+ 20 - 2
Assets/BundleResource/LuaScripts/UI/ZUILoginPanel.lua.txt

@@ -1,26 +1,44 @@
 local ZUILoginPanel = {}
 
 local function OnClickBtnLoadScene()
+    local SceneManagement   = CS.UnityEngine.SceneManagement
+    local envScene          = SceneManagement.SceneManager.GetSceneByName("Env")
+
+	if nil ~= envScene.name then
+		return
+	end
+
     local SceneManagement   = CS.UnityEngine.SceneManagement
 	SceneManagement.SceneManager.LoadSceneAsync("Env", SceneManagement.LoadSceneMode.Additive)
 end
 
 local function OnClickBtnUnLoadScene()
+    local SceneManagement   = CS.UnityEngine.SceneManagement
+    local envScene          = SceneManagement.SceneManager.GetSceneByName("Env")
+
+	if nil == envScene.name then
+		return
+	end
+
     CS.UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync("Env")
 end
 
 local function OnClickBtnLoadPrefab()
 	local sceneObj = CS.UnityEngine.GameObject.Find("Scene")
-	if not sceneObj then
-		sceneObj = CS.UnityEngine.GameObject("Scene")
+	if  sceneObj then
+    	CS.UnityEngine.GameObject.Destroy(sceneObj)
 	end
 
+	sceneObj = CS.UnityEngine.GameObject("Scene")
 	local prefabOffice = LoadResource("Prefabs/Scene/Office.prefab")
 	CS.UnityEngine.GameObject.Instantiate(prefabOffice, sceneObj.transform)
 end
 
 local function OnClickUnLoadPrefab()
 	local sceneObj = CS.UnityEngine.GameObject.Find("Scene")
+	if not sceneObj then
+		return
+	end
     CS.UnityEngine.GameObject.Destroy(sceneObj)
 end