调整 Unity Sprite 的大小

Resize Unity Sprite

所以我在为大学做这个小游戏时遇到了调整精灵大小的问题。我的游戏就像一场图形冒险(猴岛、冷酷的凡丹戈等),它有一个可以保存物品的库存。 问题是,虽然世界对象精灵很好并且有不同的大小,但我希望它们的精灵在调整大小时将它们保存在清单中以便它们可以适应。

我认为这是使用 Bounds class 完成的,但我有一些问题。另外:我遵循的教程做了一些在当时可能有用的事情,但现在它给了我一个编译错误。下面显示了我保存项目的函数(并在此过程中调整其精灵的大小):

void SaveInventoryItem()
{
    string name = transform.parent.gameObject.name;
    GameObject temporaryObject = Instantiate(inventoryItemPrefab);
    temporaryObject.name = name;
    temporaryObject.gameObject.GetComponent<SpriteRenderer>().sprite = transform.parent.GetComponent<SpriteRenderer>().sprite;
    temporaryObject.transform.parent = inventoryCanvas.transform;

    temporaryObject.transform.position = Vector3.forward * -1;
    temporaryObject.gameObject.GetComponentInChildren<InteractZone>().interactText = "Usar " + name;

    Bounds bounds = temporaryObject.gameObject.GetComponent<SpriteRenderer>().sprite.bounds.size ;
    float factor = General.inventoryItemSize / bounds.size.y;
}

错误说 无法从 UnityEngine.Vector3 转换为 UnityEngine.Bounds

如果有人知道解决此错误的方法或以默认大小调整精灵大小的其他方法,请告诉我。

看看@Erik Overflows 的评论。在您的库存系统中使用 canvas class,其中将包含一堆具有正确设置大小的图像。然后你可以将精灵分配给图像,它应该会自动调整大小。

正如 Erik 在他的评论中所说,您只需将清单中 UI canvas 元素的图像设置为精灵,它会自动使精灵适合 ui 元素。然后,您需要做的就是使用建议的系统 figbar 在添加或删除库存项目时将精灵分配给您的图像。

如果您知道精灵的大小,请在检查器下将每单位像素更改为该大小。 您可以玩弄数字直到它填满,或者您可以将 Sprite 模式更改为多个,单击 Sprite 编辑器按钮,然后进行切片。 Select 按单元格大小类型划分的网格,它可能会填充像素大小,但您可以使用它并弄清楚是否没有。