如何在 C# 中引用精灵的宽度?

How do I reference the width of a sprite in C#?

我目前是第一次在 Unity 中工作。我正在尝试按程序创建平台游戏关卡。我找到了一些资源,这些资源帮助我组合了一个非常简单的算法来完成此任务,但从视觉上看,它有点欠缺。我正在使用我从资产商店 dl'd 的资产中的地面精灵,并且瓷砖重叠,使它看起来很傻。我正在尝试找出如何引用图块的宽度,以便将下一个图块绘制在前一个 sprite/tile 的旁边,而不是在其之上。这是我当前的关卡生成器的样子:

public class LevelGenerator: MonoBehaviour
{

    [SerializeField] int width, height;
    [SerializeField] GameObject ground;
    // Start is called before the first frame update
    void Start()
    {
        Generator();
    }


    public void Generator()
    {

        for (int x = 0; x < width; x++)
        {
            for (int y = 0; y < height; y++)
            {
                Instantiate(ground, new Vector2(x, y), Quaternion.identity);
            }
    
        }

我想将 x 和 y++ 更改为 x += ground.width, y += ground.height。我用谷歌搜索但没有找到任何明确的答案。对此的任何指示将不胜感激。谢谢大家,祝你玩得开心!

您可以从精灵的矩形中获取精灵的宽度和高度。

width = mySprite.rect.width;
height = mySprite.rect.height;

参考 Sprite