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); }
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)); } }
// 加载 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; } }