0
我发现一些有趣的关于统一Sprite
和纹理(Texture2D
)。我制作了一个50x50 .png
,并通过附加到GameObject
并使用SpriteRenderer
将其渲染到Unity中。团结正确雪碧/纹理宽度高度
我意识到什么,每当我称之为统一相关方法(sprite.texture.width
,sprite.rect.width
,sprite.textureRect.width
等),它总是返回50.但是,图像的实际大小变成24×24 12×12或根据该决议我屏幕。
当然,这并不是什么大惊喜,因为投影等是在Unity在屏幕上渲染东西之前应用的;然而,有趣的部分我找不到任何方法或简单的方法来获得应用投影后的Sprite
的大小。
我仍然可以制作自己的投影以提供相关的尺寸;不过,我想知道是否有更简单的方法来获取这些信息。
谢谢!
那是......不是一个容易回答的问题。图像可以在应用比例等的变换内。但是,您可以*从场景单位转换为屏幕坐标。所以如果你知道角落的位置,你可以通过'Camera.main.WorldToScreenPoint(corner)'来计算。 – Draco18s
我可能错了,但渲染图像的“实际”大小取决于屏幕分辨率,相机大小和精灵的PPU值。 –
@ Draco18s它运行不正常。我尝试了sprite.rect.max到世界空间,它返回(-7.3,-4.0),而不是(-4.166,-4.166) – ciyo