2

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

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

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

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

4

3 回答 3

1

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

于 2020-01-09T19:41:31.450 回答
1

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

于 2020-01-09T19:14:33.117 回答
0

如果您知道精灵的大小,请在 Inspector 下将 Pixels Per Unit 更改为该大小。您可以玩弄数字直到填满,或者您可以将 Sprite 模式更改为多个,单击 Sprite Editor 按钮,然后转到切片。按单元格大小类型选择网格,它可能会填充像素大小,但您可以使用它并找出它是否没有。

于 2021-07-29T22:13:07.563 回答