📅  最后修改于: 2023-12-03 15:20:51.848000             🧑  作者: Mango
在Unity中,GameObject是场景中的所有对象的基类。用于添加各种组件,其中包括Sprite Renderer组件,用于渲染Sprite图像。在一些情况下,开发人员需要动态地更改Sprite图像大小。在本文中,将介绍如何以编程方式设置Sprite图像的原生大小。
首先,我们需要获取到SpriteRenderer组件,然后才能进一步更改其大小。我们可以使用以下代码获取到SpriteRenderer组件:
SpriteRenderer spriteRenderer = gameObject.GetComponent<SpriteRenderer>();
其中gameObject是一个GameObject类型的变量,它代表了当前场景中的GameObject对象。
将Sprite图像设置为其原生大小时,需要知道其原生大小。我们可以通过SpriteRenderer的sprite属性获得该sprite图像。因此,我们可以使用以下代码获取原生大小:
Vector3 originalSize = spriteRenderer.sprite.bounds.size;
该代码段将返回一个Vector3,其中包含Sprite图像的宽度,高度和深度。注意,其中的尺寸表示为局部坐标系中的尺寸,而不是世界坐标系。
现在,我们已经有了原生大小的Sprite图像,可以将其大小应用于SpriteRenderer组件。以下代码演示如何将Sprite图像大小设置为原生大小:
spriteRenderer.transform.localScale = new Vector3(originalSize.x, originalSize.y, 1);
该代码将Sprite图像的大小应用于SpriteRenderer组件。在这里,我们使用了transform属性来获取SpriteRenderer组件的Transform组件,并将其局部缩放设置为原来的大小。
整个代码段将如下所示:
SpriteRenderer spriteRenderer = gameObject.GetComponent<SpriteRenderer>();
Vector3 originalSize = spriteRenderer.sprite.bounds.size;
spriteRenderer.transform.localScale = new Vector3(originalSize.x, originalSize.y, 1);
这样可以在脚本中以编程方式将Sprite图像大小设置为其原生大小。
我们还需要注意,当SpriteRenderer组件中的Sorting Layer或Order in Layer更改时,此方法将继续适用。