【问题标题】:Unity 2D - scale sprite according to screen widthUnity 2D - 根据屏幕宽度缩放精灵
【发布时间】:2015-04-17 13:30:52
【问题描述】:

我有一个方形精灵(宽度 == 高度),我想缩放它,使宽度和高度正好是屏幕宽度的五分之一。

要找到所需的像素宽度:

float desiredWidthPixels = Screen.width * 0.2f;
float desiredHeightPixels = Screen.width * 0.2f;

如何将这些值应用于精灵?

【问题讨论】:

  • 如果你想要一个更精确的值,我建议你考虑使用双精度浮点数。至于你的问题,请看this document
  • 谢谢,但我的问题不在于制作精灵动画,我只需要知道如何将这些值应用于精灵,以便将其调整为所需的宽度/高度(我需要从脚本)
  • 我猜你当时没看文章?
  • 我做到了,感谢您的阅读,但这不是我需要的;我只需要从脚本调整精灵的大小,使其宽度和高度是屏幕的五分之一,在所有可能的屏幕尺寸和分辨率上

标签: unity3d 2d sprite


【解决方案1】:

这取决于您的相机是否为正交相机。

您必须根据对象的原始大小放大或缩小对象。

 float cameraHeight = Camera.main.orthographicSize * 2;
 float cameraWidth = cameraHeight * Screen.width / Screen.height; // cameraHeight * aspect ratio

 gameObject.transform.localScale = Vector3.one * cameraHeight / 5.0f;

代码进入附加到游戏对象(在您的情况下为精灵)的脚本文件,因为游戏对象表示它所在的游戏对象。如果您是从另一个脚本文件执行此操作,那么您需要先在树中找到对象,然后再对其进行缩放。

【讨论】:

  • 谢谢,我尝试了您的解决方案,结果如下:精灵现在在所有屏幕上显示相同,尽管它的宽度等于整个屏幕宽度,而不是五分之一。知道为什么会这样吗?另外,我的相机是正交的
  • 我认为这取决于你的精灵的原始大小。你能玩弄 5.0f - 例如让它 25.0f
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多