如何在 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
我目前是第一次在 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