protected override bool OnShaderLoaded(Shader target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, bool isMatInst, string resName, string tag) { bool ret = base.OnShaderLoaded(target, obj, asyncType, isMatInst, resName, tag); if (!ret) { switch (asyncType) { case BaseResLoaderAsyncType.UITextureShader: UITexture ui1 = obj as UITexture; ui1.shader = target; break; case BaseResLoaderAsyncType.UI2DSpriteShader: UI2DSprite ui2 = obj as UI2DSprite; ui2.shader = target; break; default: return(false); } SetResource <Shader>(obj, target, resName, tag); return(true); } return(false); }
protected int ReMake(string fileName, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, bool isMatInst, out ulong id, string resName = "", string tag = "") { id = 0; if (obj == null) { return(-1); } int subID = obj.GetInstanceID(); bool isSame; RemoveSUBID(fileName, subID, asyncType, out isSame); if (!isSame) { id = MakeLongSubID(subID, asyncType); if (AddLoadingNode(fileName, id, obj, isMatInst, resName, tag)) { return(1); } return(-1); } else { return(0); } }
private bool RemoveSUBID(string fileName, int subID, BaseResLoaderAsyncType asyncType, out bool isSame) { isSame = false; if (m_LoadingList == null) { return(false); } var node = m_LoadingList.First; while (node != null) { var next = node.Next; if (node.Value != null) { var n = node.Value as ListenerLoaderNode; ulong ID = n.SubID; if (GetIntSubID(ID) == subID && GetSubType(ID) == asyncType) { isSame = string.Compare(fileName, n.fileName, true) == 0; if (isSame) { return(false); } n.Dispose(); return(true); } } node = next; } return(false); }
private ulong MakeLongSubID(int subID, BaseResLoaderAsyncType asyncType) { ulong v1 = (ulong)subID & 0xFFFFFFFF; ulong v2 = ((ulong)asyncType & 0xFFFF) << 32; ulong v3 = ((ulong)MakeGlobalSubID() & 0xFFFF) << 48; ulong ret = (v1 | v2 | v3); return(ret); }
protected virtual bool OnFontLoaded(Font target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, string resName, string tag) { if (target != null && obj != null) { switch (asyncType) { case BaseResLoaderAsyncType.TextMeshFont: TextMesh text = obj as TextMesh; text.font = target; break; default: return(false); } SetResource <Font>(obj, target, resName, tag); return(true); } return(false); }
protected override bool OnFontLoaded(Font target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, string resName, string tag) { bool ret = base.OnFontLoaded(target, obj, asyncType, resName, tag); if (!ret) { switch (asyncType) { case BaseResLoaderAsyncType.NGUIUIFontFont: UIFont o1 = obj as UIFont; o1.dynamicFont = target; break; default: return(false); } SetResource <Font>(obj, target, resName, tag); return(true); } return(ret); }
protected override bool OnTextureLoaded(Texture target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, bool isMatInst, string resName, string tag) { bool ret = base.OnTextureLoaded(target, obj, asyncType, isMatInst, resName, tag); if (!ret) { switch (asyncType) { case BaseResLoaderAsyncType.UITextureMainTexture: UITexture ui1 = obj as UITexture; ui1.mainTexture = target; var m1 = ui1.material; if (m1 != null) { m1.mainTexture = target; } break; case BaseResLoaderAsyncType.UISpriteMainTexture: UISprite ui2 = obj as UISprite; ui2.mainTexture = target; break; case BaseResLoaderAsyncType.UI2DSpriteMainTexture: UI2DSprite ui3 = obj as UI2DSprite; ui3.mainTexture = target; break; default: return(false); } SetResource <Texture>(obj, target, resName, tag); return(true); } return(false); }
protected override bool OnPrefabLoaded(GameObject target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, string resName, string tag) { bool ret = base.OnPrefabLoaded(target, obj, asyncType, resName, tag); if (!ret) { switch (asyncType) { case BaseResLoaderAsyncType.NGUIUISpriteAtlas: UISprite o1 = obj as UISprite; UIAtlas altas = target.GetComponent <UIAtlas> (); if (altas == null) { ClearResource <UIAtlas> (o1); o1.atlas = null; return(false); } o1.atlas = altas; SetResource(obj, target, typeof(UIAtlas)); break; default: return(false); } return(true); } return(ret); }
protected virtual bool OnMaterialLoaded(Material target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, string resName, string tag) { if (target != null && obj != null) { switch (asyncType) { case BaseResLoaderAsyncType.MeshRenderMaterial: MeshRenderer o1 = obj as MeshRenderer; o1.sharedMaterial = target; ClearInstanceMaterialMap(o1); break; case BaseResLoaderAsyncType.SpriteRenderMaterial: SpriteRenderer o2 = obj as SpriteRenderer; o2.sharedMaterial = target; ClearInstanceMaterialMap(o2); break; default: return(false); } SetResources(target, null, typeof(Material[])); SetResource <Material>(obj, target, resName, tag); return(true); } return(false); }
protected virtual bool OnAniControlLoaded(RuntimeAnimatorController target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, string resName, string tag) { if (target != null && obj != null) { switch (asyncType) { case BaseResLoaderAsyncType.AnimatorController: Animator ani = obj as Animator; ani.runtimeAnimatorController = target; break; default: return(false); } SetResource <RuntimeAnimatorController>(obj, target, resName, tag); return(true); } return(false); }
protected virtual bool OnPrefabLoaded(GameObject target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, string resName, string tag) { return(false); }
protected virtual bool OnShaderLoaded(Shader target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, bool isMatInst, string resName, string tag) { return(false); }
/*---------------------------------------------------- 异步加载回调 --------------------------------------------------------------*/ protected virtual bool OnTextureLoaded(Texture target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, bool isMatInst, string resName, string tag) { if (target != null && obj != null) { switch (asyncType) { case BaseResLoaderAsyncType.SpriteRenderMainTexture: { SpriteRenderer r1 = obj as SpriteRenderer; var m1 = GetRealMaterial(r1, isMatInst); if (m1 == null) { return(false); } m1.mainTexture = target; break; } case BaseResLoaderAsyncType.MeshRenderMainTexture: MeshRenderer r2 = obj as MeshRenderer; var m2 = GetRealMaterial(r2, isMatInst); if (m2 == null) { return(false); } m2.mainTexture = target; break; default: return(false); } SetResource <Texture>(obj, target, resName, tag); return(true); } return(false); }
private BaseResLoaderAsyncType GetSubType(ulong subID) { BaseResLoaderAsyncType ret = (BaseResLoaderAsyncType)((subID >> 32) & 0xFFFF); return(ret); }