/* * private void ClearLoader(int instanceId, LoaderGroupSubNodeType subType) { * if (m_LoadList == null || m_LoadMap == null) * return; * var loader = this.Loader; * if (loader == null) * return; * var node = m_LoadList.First; * while (node != null) { * var next = node.Next; * var n = node.Value; * if (n != null && n.ClearLoader(instanceId, loader, subType)) { * m_LoadList.Remove(node); * LoaderGroupKey key = new LoaderGroupKey(n.FileName, n.Type); * m_LoadMap.Remove(key); * DestroyNodeByPool(n); * } * node = next; * } * } */ public void LoadAll(int instanceId, LoaderGroupSubNodeType subType) { if (m_LoadList == null || m_LoadMap == null) { return; } var loader = this.Loader; if (loader == null) { return; } var node = m_LoadList.First; while (node != null) { var next = node.Next; var n = node.Value; if (n != null && n.LoadAll(instanceId, loader, subType)) { if (n.LoadCount <= 0) { m_LoadList.Remove(node); LoaderGroupKey key = new LoaderGroupKey(n.FileName, n.Type); m_LoadMap.Remove(key); DestroyNodeByPool(n); } } node = next; } }
/* * public bool ClearLoader(int instanceId, BaseResLoader loader, LoaderGroupSubNodeType subType) { * if (m_SubNodeList == null || loader == null) * return false; * var node = m_SubNodeList.First; * while (node != null) { * var next = node.Next; * var n = node.Value; * if (n != null && n.IsVaild && n.target.GetInstanceID() == instanceId) { * if (!IsLoadAllMustLoad(n.type, subType)) { * m_SubNodeList.Remove(node); * DestroySubNodeByPool(n); * return true; * } * } * node = next; * } * return false; * } */ public bool LoadAll(int instanceId, BaseResLoader loader, LoaderGroupSubNodeType subType) { if (m_SubNodeList == null || loader == null) { return(false); } var node = m_SubNodeList.First; while (node != null) { var next = node.Next; var n = node.Value; if (n != null && n.IsVaild && n.target.GetInstanceID() == instanceId) { // 类型一样直接不加载 if (IsLoadAllMustLoad(n.type, subType)) { DoLoad(loader, n); } m_SubNodeList.Remove(node); DestroySubNodeByPool(n); return(true); } node = next; } return(false); }
public void CreateLoaderGroupNode(UnityEngine.Object target, string fileName, LoaderGroupSubNodeType type, System.Object param = null) { if (target == null || string.IsNullOrEmpty(fileName)) { return; } var nodeType = GetLoaderGroupNodeType(type); if (nodeType == LoaderGroupNodeType.None) { return; } var loadMap = this.LoadMap; LoaderGroupKey key = new LoaderGroupKey(fileName, nodeType); LoaderGroupNode node; if (loadMap.TryGetValue(key, out node)) { node.AddSubNode(type, target, param); return; } LoaderGroupNode ret = CreateNodeByPool(fileName, nodeType); ret.AddSubNode(type, target, param); AddLoadNode(key, ret); }
private static LoaderGroupSubNode CreateSubNodeByPool(LoaderGroupSubNodeType type, UnityEngine.Object target) { InitPool(); var ret = m_SubNodePool.GetObject(); ret.Init(type, target); return(ret); }
private LoaderGroupNodeType GetLoaderGroupNodeType(LoaderGroupSubNodeType subType) { LoaderGroupNodeType ret = LoaderGroupNodeType.None; switch (subType) { case LoaderGroupSubNodeType.MeshRenderer_MainTexture: case LoaderGroupSubNodeType.MeshRenderer_Texture: case LoaderGroupSubNodeType.UI2DSprite_MainTexture: case LoaderGroupSubNodeType.UITexture_MainTexture: case LoaderGroupSubNodeType.UISprite_MainTexture: case LoaderGroupSubNodeType.UITexture_Texture: ret = LoaderGroupNodeType.Texture; break; case LoaderGroupSubNodeType.UI2DSprite_Material: case LoaderGroupSubNodeType.SpriteRenderer_Material: case LoaderGroupSubNodeType.MeshRenderer_Material: case LoaderGroupSubNodeType.UISprite_Material: case LoaderGroupSubNodeType.UITexture_Material: ret = LoaderGroupNodeType.Material; break; case LoaderGroupSubNodeType.SkeletonAnimation_ScriptObject: ret = LoaderGroupNodeType.Skeleton; break; case LoaderGroupSubNodeType.TextMesh_Font: ret = LoaderGroupNodeType.Font; break; case LoaderGroupSubNodeType.SpriteRenderer_SpriteData: case LoaderGroupSubNodeType.UI2DSprite_SpriteData: ret = LoaderGroupNodeType.SpriteData; break; case LoaderGroupSubNodeType.UISprite_Atals: ret = LoaderGroupNodeType.Atals; break; default: Debug.LogErrorFormat("[ErrorSubNodeType] {0:D}", (int)subType); break; } return(ret); }
public void AddSubNode(LoaderGroupSubNodeType type, UnityEngine.Object target, System.Object param) { if (m_SubNodeList == null) { m_SubNodeList = new LinkedList <LoaderGroupSubNode>(); } // 防止重复加入 if (IsFind(type, target)) { return; } LoaderGroupSubNode subNode = CreateSubNodeByPool(type, target, param); m_SubNodeList.AddLast(subNode.LinkNode); }
private bool IsFind(LoaderGroupSubNodeType type, UnityEngine.Object target) { if (m_SubNodeList == null || m_SubNodeList.Count <= 0) { return(false); } var node = m_SubNodeList.First; while (node != null) { var subNode = node.Value; if (subNode != null && subNode.IsVaild) { if (subNode.type == type && subNode.target == target) { return(true); } } node = node.Next; } return(false); }
public void Init(LoaderGroupSubNodeType type, UnityEngine.Object target, System.Object param) { this.type = type; this.target = target; m_Param = param; }
public LoaderGroupSubNode(LoaderGroupSubNodeType type, UnityEngine.Object target, System.Object param) { Init(type, target, param); }
protected bool DoNGUILoad(BaseResLoader loader, LoaderGroupSubNode node) { if (loader == null || node == null || !node.IsVaild) { return(false); } string fileName = this.FileName; if (string.IsNullOrEmpty(fileName)) { return(false); } var nguiLoader = loader as NGUIResLoader; if (nguiLoader == null) { return(false); } bool ret = true; LoaderGroupSubNodeType type = node.type; switch (type) { case LoaderGroupSubNodeType.UITexture_MainTexture: var t1 = node.uiTexture; if (t1 == null) { return(true); } nguiLoader.LoadMainTexture(t1, fileName); break; case LoaderGroupSubNodeType.UITexture_Material: var t2 = node.uiTexture; if (t2 == null) { return(true); } nguiLoader.LoadMaterial(t2, fileName); break; case LoaderGroupSubNodeType.UITexture_Texture: var t3 = node.uiTexture; if (t3 == null) { return(true); } string matName = node.Param as string; if (string.IsNullOrEmpty(matName)) { return(true); } nguiLoader.LoadTexture(t3, fileName, matName); break; case LoaderGroupSubNodeType.UISprite_Atals: var sp1 = node.uiSprite; if (sp1 == null) { return(true); } if (nguiLoader.LoadAltas(sp1, fileName)) { /* * string spriteName = this.Param as string; * if (!string.IsNullOrEmpty(spriteName)) * sp1.spriteName = spriteName; */ // 判断是否有SpriteAnimation RefreshSpriteAnimiate(sp1); } break; case LoaderGroupSubNodeType.UISprite_Material: var sp2 = node.uiSprite; if (sp2 == null) { return(true); } nguiLoader.LoadMaterial(sp2, fileName); break; case LoaderGroupSubNodeType.UISprite_MainTexture: var sp3 = node.uiSprite; if (sp3 == null) { return(true); } nguiLoader.LoadMainTexture(sp3, fileName); break; case LoaderGroupSubNodeType.UI2DSprite_MainTexture: var sp4 = node.ui2DSprite; if (sp4 == null) { return(true); } nguiLoader.LoadMainTexture(sp4, fileName); break; case LoaderGroupSubNodeType.UI2DSprite_SpriteData: var sp5 = node.ui2DSprite; if (sp5 == null) { return(true); } string spName1 = node.Param as string; if (!string.IsNullOrEmpty(spName1)) { nguiLoader.LoadSprite(sp5, fileName, spName1); } break; case LoaderGroupSubNodeType.UI2DSprite_Material: var sp6 = node.ui2DSprite; if (sp6 == null) { return(true); } nguiLoader.LoadMaterial(sp6, fileName); break; default: ret = false; break; } return(ret); }
private bool IsLoadAllMustLoad(LoaderGroupSubNodeType currentType, LoaderGroupSubNodeType nextType) { bool ret = currentType != nextType; return(ret); }
protected void CreateNGUIGroupNode(UIWidget target, string fileName, LoaderGroupSubNodeType type, System.Object param = null) { CreateLoaderGroupNode(target, fileName, type, param); }
public void Init(LoaderGroupSubNodeType type, UnityEngine.Object target) { this.type = type; this.target = target; }
public LoaderGroupSubNode(LoaderGroupSubNodeType type, UnityEngine.Object target) { Init(type, target); }