コード例 #1
0
        public IWebNode Load(string rawImagePath)
        {
            if (null == _rawImage)
            {
                return(EmptyWebNode.Instance);
            }

            _rawImage.enabled = false;

            if (string.IsNullOrEmpty(rawImagePath))
            {
                return(EmptyWebNode.Instance);
            }

            if (null != _webItem && _webItem.argument.localPath == rawImagePath)
            {
                _OnLoadedWebItem(_webItem);
            }
            else
            {
                os.dispose(ref _webItem);
                WebArgument arg = new WebArgument {
                    localPath = rawImagePath, flags = WebFlags.HighPriority | WebFlags.DontCache | WebFlags.UnloadAllLoadedObjects
                };
                _webItem = WebManager.Instance.LoadWebItem(arg, _OnLoadedWebItem);
            }

            return(_webItem);
        }
コード例 #2
0
        private IWebNode _LoadUI <UIWindowT>(string resourcePath, Action <UIWindowBase> onLoaded)
            where UIWindowT : UIWindowBase, new()
        {
            var argument = new WebArgument
            {
                localPath = resourcePath,
                flags     = WebFlags.UnloadAllLoadedObjects
            };

            IWebNode ret = WebManager.Instance.LoadWebPrefab(argument, prefab => {
                using (prefab)
                {
                    UIWindowBase window = null;
                    Object scenceRoot   = prefab.mainAsset.CloneEx(true);
                    if (null != scenceRoot)
                    {
                        window = new UIWindowT();
                        window.Initialise(scenceRoot as GameObject);
                    }

                    if (null != onLoaded)
                    {
                        onLoaded(window);
                    }
                }
            });

            return(ret);
        }
コード例 #3
0
        private IWebNode LoadHead(string imagePath)
        {
            if (null == _headImagePerfab)
            {
                return(EmptyWebNode.Instance);
            }

            _headImagePerfab.enabled = false;

            if (string.IsNullOrEmpty(imagePath))
            {
                return(EmptyWebNode.Instance);
            }

            WebArgument arg = WebManager.Instance.GetWebArgument(imagePath);

            if (null != _webItemHead && _webItemHead.argument.assetName.Equals(arg.assetName))
            {
                Console.WriteLine("!!!!!!!!!!!!!!");
                _OnLoadedWebItemHead(_webItemHead);
            }
            else
            {
                _webItemHead = null;
                arg.flags    = WebFlags.HighPriority | WebFlags.DontCache | WebFlags.UnloadAllLoadedObjects;
                _webItemHead = WebManager.Instance.LoadWebItem(arg, _OnLoadedWebItemHead);
            }

            return(_webItemHead);
        }
コード例 #4
0
        //public IWebNode Load (string imagePath)
        //{
        //	if (null == _image)
        //	{
        //		return EmptyWebNode.Instance;
        //	}

        //	_image.enabled = false;

        //	if (string.IsNullOrEmpty(imagePath))
        //	{
        //		return EmptyWebNode.Instance;
        //	}

        //	if (null != _webItem && _webItem.argument.localPath == imagePath)
        //	{
        //		Console.WriteLine ("!!!!!!!!!!!!!!");
        //		_OnLoadedWebItem (_webItem);
        //	}
        //	else
        //	{
        //		os.dispose (ref _webItem);
        //		WebArgument arg = new WebArgument{localPath = imagePath, flags = WebFlags.HighPriority | WebFlags.DontCache | WebFlags.UnloadAllLoadedObjects};
        //		_webItem = WebManager.Instance.LoadWebItem (arg, _OnLoadedWebItem);
        //	}

        //	return _webItem;
        //}
        public IWebNode Load(string imagePath)
        {
            if (null == _image)
            {
                return(EmptyWebNode.Instance);
            }

            _image.enabled = false;

            if (string.IsNullOrEmpty(imagePath))
            {
                return(EmptyWebNode.Instance);
            }

            WebArgument arg = WebManager.Instance.GetWebArgument(imagePath);

            if (null != _webItem && _webItem.argument.assetName.Equals(arg.assetName))
            {
                Console.WriteLine("!!!!!!!!!!!!!!");
                _OnLoadedWebItem(_webItem);
            }
            else
            {
                os.dispose(ref _webItem);
                arg.flags = WebFlags.HighPriority | WebFlags.DontCache | WebFlags.UnloadAllLoadedObjects;
                _webItem  = WebManager.Instance.LoadWebItem(arg, _OnLoadedWebItem);
            }

            return(_webItem);
        }
コード例 #5
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);
        }
コード例 #6
0
        private void _LoadMetadataTemplate <T>(string path) where T : Template, new()
        {
            TemplateTable table = new TemplateTable();

            _mTemplateTables.Add(typeof(T).Name, table);

            var argument = new WebArgument()
            {
                localPath = path,
                flags     = WebFlags.NewWWW
            };

            WebManager.Instance.LoadWebItem(argument, item => {
                using (MemoryStream ms = new MemoryStream(item.bytes))
                    using (OctetsReader br = new OctetsReader(ms))
                    {
                        var count = br.ReadInt32();
                        for (int i = 0; i < count; ++i)
                        {
                            var template = new T();
                            template.Load(br);
                            table.Add(template.id, template);
                        }
                    }
            });
        }
コード例 #7
0
        public static IWebNode CreatePool(string localPath, Action <PrefabPool> handler)
        {
            localPath = localPath ?? string.Empty;
            var argument = new WebArgument {
                localPath = localPath
            };

            return(CreatePool(argument, handler));
        }
コード例 #8
0
        public static IWebNode CreatePool(WebArgument argument, Action <PrefabPool> handler)
        {
            InnerPrefabPool innerPool;
            var             key = argument.localPath;

            if (!_innerPools.TryGetValue(key, out innerPool))
            {
                innerPool = new InnerPrefabPool(argument);
                _innerPools.Add(key, innerPool);
            }

            CoroutineManager.StartCoroutine(_CoLoadInnerPrefabPool(innerPool, handler));
            var web = innerPool.GetWebPrefab();

            return(web);
        }
コード例 #9
0
        private void _LoadMetadataConfig <T>(string path) where T : Config, new()
        {
            var argument = new WebArgument()
            {
                localPath = path,
                flags     = WebFlags.NewWWW
            };

            WebManager.Instance.LoadWebItem(argument, item => {
                using (MemoryStream ms = new MemoryStream(item.bytes))
                    using (OctetsReader br = new OctetsReader(ms))
                    {
                        var config = new T();
                        config.Load(br);
                        _mConfigs.Add(typeof(T).Name, config);
                    }
            });
        }
コード例 #10
0
 public InnerPrefabPool(WebArgument argument)
 {
     localPath  = argument.localPath;
     _webPrefab = new WebPrefab(argument, _OnLoadWebPrefab);
 }