📜  unity gameobject sprite 在脚本中设置原生大小 (1)

📅  最后修改于: 2023-12-03 15:20:51.848000             🧑  作者: Mango

Unity GameObject Sprite 在脚本中设置原生大小

在Unity中,GameObject是场景中的所有对象的基类。用于添加各种组件,其中包括Sprite Renderer组件,用于渲染Sprite图像。在一些情况下,开发人员需要动态地更改Sprite图像大小。在本文中,将介绍如何以编程方式设置Sprite图像的原生大小。

第一步: 获取Sprite Renderer组件

首先,我们需要获取到SpriteRenderer组件,然后才能进一步更改其大小。我们可以使用以下代码获取到SpriteRenderer组件:

SpriteRenderer spriteRenderer = gameObject.GetComponent<SpriteRenderer>();

其中gameObject是一个GameObject类型的变量,它代表了当前场景中的GameObject对象。

第二步: 获取Sprite图像的原生大小

将Sprite图像设置为其原生大小时,需要知道其原生大小。我们可以通过SpriteRenderer的sprite属性获得该sprite图像。因此,我们可以使用以下代码获取原生大小:

Vector3 originalSize = spriteRenderer.sprite.bounds.size;

该代码段将返回一个Vector3,其中包含Sprite图像的宽度,高度和深度。注意,其中的尺寸表示为局部坐标系中的尺寸,而不是世界坐标系。

第三步: 调整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更改时,此方法将继续适用。