如何修改矩形变换的高度,同时使它看起来与以前统一时的位置相同?

How can I modify the height of a rect transform, while making it appear as it is the same position as before in unity?

所以我想通过代码更改矩形变换的高度,但我希望它看起来好像在同一位置。这样做的原因是因为我有一个面具,我想慢慢增加尺寸但只是向上(比如,它首先显示底部然后继续向上),但如果我正常这样做并且只是改变 sizeDelta 它看起来像正在移动,但 Y 坐标保持不变。所以我需要做的是找到一种方法来改变 Y 位置,使它看起来像物体静止不动。

回答我自己的问题,因为我发现了如何去做。我所做的是在起点和高度处存储 Y 位置。然后每一帧我只是运行这个代码

rect.localPosition = new Vector3(rect.localPosition.x, startPosY - ((startHeight - rect.sizeDelta.y) * 0.5f), rect.localPosition.z);

我发现当将高度更改为正值时,y 位置会减少一半。 (如果您将高度更改为负值,这也有效,但 y 位置会增加而不是减少)。

希望这对以后的人有所帮助:)