public static DynValue MakeIngameSprite(string filename, string tag = "BelowArena", int childNumber = -1) { if (ParseUtil.TestInt(tag) && childNumber == -1) { childNumber = ParseUtil.GetInt(tag); tag = "BelowArena"; } Image i = GameObject.Instantiate <Image>(SpriteRegistry.GENERIC_SPRITE_PREFAB); if (!string.IsNullOrEmpty(filename)) { SwapSpriteFromFile(i, filename); } else { throw new CYFException("You can't create a sprite object with a nil sprite!"); } if (!GameObject.Find(tag + "Layer") && tag != "none") { UnitaleUtil.DisplayLuaError("Creating a sprite", "The sprite layer " + tag + " doesn't exist."); } else { if (childNumber == -1) { if (tag == "none") { i.transform.SetParent(GameObject.Find("Canvas").transform, true); } else { i.transform.SetParent(GameObject.Find(tag + "Layer").transform, true); } } else { RectTransform[] rts = GameObject.Find(tag + "Layer").GetComponentsInChildren <RectTransform>(); for (int j = 0; j < rts.Length; j++) { if (j >= childNumber) { rts[j].SetParent(null, true); } } i.transform.SetParent(GameObject.Find(tag + "Layer").transform, true); for (int j = 0; j < rts.Length; j++) { if (j >= childNumber) { rts[j].SetParent(GameObject.Find(tag + "Layer").transform, true); } } } } return(UserData.Create(new LuaSpriteController(i), LuaSpriteController.data)); }
public static DynValue MakeIngameSprite(string filename, string tag = "BelowArena", int childNumber = -1) { string canvas = UnitaleUtil.IsOverworld ? "Canvas Two/" : "Canvas/"; tag = (UnitaleUtil.IsOverworld && tag == "BelowArena") ? "Default" : tag; if (ParseUtil.TestInt(tag) && childNumber == -1) { childNumber = ParseUtil.GetInt(tag); tag = UnitaleUtil.IsOverworld ? "Default" : "BelowArena"; } Image i = GameObject.Instantiate <Image>(SpriteRegistry.GENERIC_SPRITE_PREFAB); if (!string.IsNullOrEmpty(filename)) { SwapSpriteFromFile(i, filename); } else { throw new CYFException("You can't create a sprite object with a nil sprite!"); } if (!GameObject.Find(tag + "Layer") && tag != "none") { if ((!UnitaleUtil.IsOverworld && tag == "BelowArena") || (UnitaleUtil.IsOverworld && tag == "Default")) { i.transform.SetParent(GameObject.Find(canvas).transform); } else { UnitaleUtil.DisplayLuaError("Creating a sprite", "The sprite layer " + tag + " doesn't exist."); } } else { if (tag == "none") { i.transform.SetParent(GameObject.Find(canvas).transform, true); } else { i.transform.SetParent(GameObject.Find(tag + "Layer").transform, true); } if (childNumber != -1) { i.transform.SetSiblingIndex(childNumber - 1); } } return(UserData.Create(new LuaSpriteController(i), LuaSpriteController.data)); }