Browse Source

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

gongyan 2 years ago
parent
commit
3fe743e25c
1 changed files with 20 additions and 2 deletions
  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