예제 #1
0
    public SpriteRenderer CreateClsnSprite(string name, Transform parent, float x, float y, float w, float h, bool isClsn2 = true)
    {
        SpriteRenderer r = GetClsnSpriteFromPool(name);

        if (r == null)
        {
            return(null);
        }
        var trans = r.transform;

        if (trans.parent != parent)
        {
            trans.SetParent(parent, false);
        }

        if (m_ClsnTex == null)
        {
            m_Loader.LoadTexture(ref m_ClsnTex, "resources/mugen/@clsn/clsn.png");
        }
        Texture2D tex = m_ClsnTex as Texture2D;

        if (tex != null)
        {
            r.sprite = Sprite.Create(tex, new Rect(0, 0,
                                                   tex.width, tex.height), new Vector2(0.5f, 0.5f), 100f);
            trans.localScale = new Vector3(w / (float)tex.width, h / (float)tex.height, 1f);
        }
        else
        {
            trans.localScale = Vector3.zero;
        }
        if (r.sharedMaterial == null || string.IsNullOrEmpty(r.sharedMaterial.name) ||
            r.sharedMaterial.name.IndexOf("clsn", StringComparison.CurrentCultureIgnoreCase) < 0)
        {
            m_Loader.LoadMaterial(r, "resources/mugen/@clsn/clsn.mat");
        }

        Vector2 pos = new Vector2((x + w / 2f) / 100f, -(y + h / 2f) / 100f);

        trans.localPosition = pos;
        trans.localRotation = Quaternion.identity;

        if (isClsn2)
        {
            r.color = new Color(0, 0, 1f, 0.2f);
        }
        else
        {
            r.color = new Color(1f, 0, 0, 0.2f);
        }


        if (!r.gameObject.activeSelf)
        {
            r.gameObject.SetActive(true);
        }
        return(r);
    }
예제 #2
0
    static int LoadTexture(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 3)
            {
                BaseResLoader       obj  = (BaseResLoader)ToLua.CheckObject <BaseResLoader>(L, 1);
                UnityEngine.Texture arg0 = (UnityEngine.Texture)ToLua.CheckObject <UnityEngine.Texture>(L, 2);
                string arg1 = ToLua.CheckString(L, 3);
                bool   o    = obj.LoadTexture(ref arg0, arg1);
                LuaDLL.lua_pushboolean(L, o);
                ToLua.Push(L, arg0);
                return(2);
            }
            else if (count == 4)
            {
                BaseResLoader            obj  = (BaseResLoader)ToLua.CheckObject <BaseResLoader>(L, 1);
                UnityEngine.MeshRenderer arg0 = (UnityEngine.MeshRenderer)ToLua.CheckObject(L, 2, typeof(UnityEngine.MeshRenderer));
                string arg1 = ToLua.CheckString(L, 3);
                string arg2 = ToLua.CheckString(L, 4);
                bool   o    = obj.LoadTexture(arg0, arg1, arg2);
                LuaDLL.lua_pushboolean(L, o);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: BaseResLoader.LoadTexture"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
예제 #3
0
        // 加载
        protected virtual void DoLoad(BaseResLoader loader, LoaderGroupSubNode node)
        {
            if (DoNGUILoad(loader, node))
            {
                return;
            }

            if (loader == null || node == null || !node.IsVaild)
            {
                return;
            }
            string fileName = this.FileName;

            if (string.IsNullOrEmpty(fileName))
            {
                return;
            }

            switch (node.type)
            {
            case LoaderGroupSubNodeType.SpriteRenderer_Material:
                var sp1 = node.spriteRenderer;
                if (sp1 == null)
                {
                    return;
                }
                loader.LoadMaterial(sp1, fileName);
                break;

            case LoaderGroupSubNodeType.SpriteRenderer_SpriteData:
                var sp2 = node.spriteRenderer;
                if (sp2 == null)
                {
                    return;
                }
                string spriteName = node.Param as string;
                if (string.IsNullOrEmpty(spriteName))
                {
                    loader.LoadSprite(sp2, fileName);
                }
                else
                {
                    loader.LoadSprite(sp2, fileName, spriteName);
                }
                break;

            case LoaderGroupSubNodeType.MeshRenderer_Material:
                var mr1 = node.meshRenderer;
                if (mr1 == null)
                {
                    return;
                }
                loader.LoadMaterial(mr1, fileName);
                break;

            case LoaderGroupSubNodeType.MeshRenderer_MainTexture:
                var mr2 = node.meshRenderer;
                if (mr2 == null)
                {
                    return;
                }
                loader.LoadMainTexture(mr2, fileName);
                break;

            case LoaderGroupSubNodeType.MeshRenderer_Texture:
                var mr3 = node.meshRenderer;
                if (mr3 == null)
                {
                    return;
                }
                string matName = node.Param as string;
                if (!string.IsNullOrEmpty(matName))
                {
                    loader.LoadTexture(mr3, fileName, matName);
                }
                break;

            case LoaderGroupSubNodeType.TextMesh_Font:
                var tM1 = node.textMesh;
                if (tM1 == null)
                {
                    return;
                }
                loader.LoadFont(tM1, fileName);
                break;
            }
        }