【问题标题】:Changing sprite at runtime causes it to stop resizing - Unity在运行时更改精灵会导致它停止调整大小 - Unity
【发布时间】:2019-05-28 07:10:14
【问题描述】:

我正在运行时更改图像组件上的精灵,这会导致它停止使用图像的 RectTransform 调整大小并保持固定大小。更改精灵的代码在 Start() 方法中:

public Sprite mySprite;

 GetComponent<Image>().sprite = mySprite

如果我将其注释掉,图像会很好地调整大小,所以我知道这是问题所在。

此外,这个确切的代码在 Unity 4 中运行良好,但自从我更新后它就无法运行。

【问题讨论】:

  • 这没什么好说的,也不是minimal reproducible example 你有什么错误吗?没有代码或说明这与调整大小有什么关系
  • 您的意思是调整大小以使其放大还是仅缩放切片边框?您的“MySprite”Sprite 是否定义了边框/切片?否则它不能“缩放”
  • @Vampirasu 这是一个没有边框或任何设置的简单图像。
  • @BugFinder 我开始认为这是一个 Unity 错误,因为除了我编写的代码之外,实际上并没有涉及任何代码。我在编辑模式下将正在实例化的预制件的副本放在场景中并播放它,它可以很好地调整大小。只是在运行时实例化它不起作用。
  • @BugFinder 另外,为了澄清,我在播放模式下在编辑器中手动调整图像大小。我还尝试通过产生相同结果的脚本设置 RectTransform 的 sizeDelta。

标签: c# unity3d resize sprite


【解决方案1】:

检查您的 Image 组件是否勾选了 Preserve Aspect,如果有,请取消勾选。应该能解决你的问题。

【讨论】:

  • 不,不是它不使用 RectTransform 进行拉伸,而是根本不改变大小。如果我在 x 和 y 中增加 RectTransform 的大小,则图像在其中心保持较小。
猜你喜欢
  • 2016-09-02
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多