Beispiel #1
0
    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);
    }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
    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);
    }
Beispiel #7
0
    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);
    }
Beispiel #8
0
    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);
    }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
 protected virtual bool OnPrefabLoaded(GameObject target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, string resName, string tag)
 {
     return(false);
 }
Beispiel #12
0
 protected virtual bool OnShaderLoaded(Shader target, UnityEngine.Object obj, BaseResLoaderAsyncType asyncType, bool isMatInst, string resName, string tag)
 {
     return(false);
 }
Beispiel #13
0
/*---------------------------------------------------- 异步加载回调 --------------------------------------------------------------*/

        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);
        }
Beispiel #14
0
        private BaseResLoaderAsyncType GetSubType(ulong subID)
        {
            BaseResLoaderAsyncType ret = (BaseResLoaderAsyncType)((subID >> 32) & 0xFFFF);

            return(ret);
        }