Пример #1
0
    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));
    }
Пример #2
0
    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));
    }