示例#1
0
        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);
        }
示例#2
0
        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>());
        }