public List <IWebNode> Load(SceneDataTemplate template, Action <Scene> onSceneLoaded = null) { _sceneData = template; _onSceneLoaded = onSceneLoaded; List <IWebNode> webNodeList = new List <IWebNode>(); if (!string.IsNullOrEmpty(_sceneData.resourceName)) { var argument = new WebArgument { localPath = _sceneData.resourceName , flags = WebFlags.UnloadAllLoadedObjects }; var webScene = WebManager.Instance.LoadWebPrefab(argument, null); // here we must convert the list to an array, because the list will be returned to outside, // and may become a 700+ list. var waitingWebNodes = webNodeList.ToArray(); _loadingSceneRoutine = CoroutineManager.StartCoroutine(_CoOnSceneLoaded(webScene, waitingWebNodes)); webNodeList.Add(webScene); } return(webNodeList); }
private List <IWebNode> _CreateScene(int sceneDataId) { SceneDataTemplate temp = new SceneDataTemplate(); if (temp != null) { Scene scene = new Scene(); CurrentScene = scene; SmartCamera.Instance.SetPosition(temp.cameraPos); SmartCamera.Instance.SetEulerAngles(temp.cameraRotation); return(scene.Load(temp, _onSceneLoaded)); } else { Console.Error.WriteLine("ERROR: CreateScene() Can't Find SceneData: " + sceneDataId); } return(new List <IWebNode>()); }