效果
效果一
|
![]() |
效果二
|
![]() |
核心代码
核心代码为:UpdatePivot(this RectTransform rectTransform, Vector2 pivot) 动态更改轴心点并保持位置不变。
其余两个函数为动画协程,没有DoTween插件时可以调用。
public static class UnityHelper
{
public static void UpdatePivot(this RectTransform rectTransform, Vector2 pivot)
{
if (rectTransform.pivot.Equals(pivot)) return;
var pos = rectTransform.anchoredPosition;
pos.x -= rectTransform.rect.width * (rectTransform.pivot.x - pivot.x);
pos.y -= rectTransform.rect.height * (rectTransform.pivot.y - pivot.y);
rectTransform.pivot = pivot;
rectTransform.anchoredPosition = pos;
}
public static IEnumerator TweenScale(this Transform transform, Vector3 scale, float duration)
{
var time = 0f;
var originalScale = transform.localScale;
while (time < duration)
{
time += Time.deltaTime;
transform.localScale = Vector3.Lerp(originalScale