unity位移动画 数学向量

// 打开动画
    void Open()
    {   
        gameObject.SetActive(true);
        left.transform.localPosition = new Vector3(-1275f - 383f,-60f,0f);
        right.transform.localPosition = new Vector3(1275f + 370f, -60f, 0f);
        top.transform.localPosition = new Vector3(-5f, 718f + 43f, 0f);

        left.GetComponent<Transform>().DOLocalMoveX(-1275f + 383f, 2f);
        right.GetComponent<Transform>().DOLocalMoveX(1275f - 370f, 2f);
        top.GetComponent<Transform>().DOLocalMoveY(718f - 43f, 2f);
    }

在Unity做位置移动动画时,运用的是向量的原理。
x轴向左移动减,向右移动加,y轴向上移动加,向下移动减。

1.设置了三个物体(left、right、top)的初始本地位置,通过调整它们的 localPosition 属性来确定它们在局部坐标空间中的位置。
这些初始位置通常是在场景中看不到它们的位置,它们将在动画中移动到可见的位置。
注意在查看对象位置时,确保Anchor Presets为正确的设置。Anchor Presets是一种用于设置RectTransform锚点的工具。它们定义了UI元素与其父元素(通常是Canvas)之间的相对位置。

Anchor Presets.png

Canvas的PosX值为1275,PosY值为717。
即:x轴上,-1275到1275为Canvas的范围;
y轴上,-717到717为Canvas的范围。
超出这两个范围,就是物体无法被看见的位置。
left的PosX值为383,right的PosX值为-370,top的PosY值为-43,要做left和right的X轴移动动画和top的Y轴移动动画,则它们三个无法被看见的位置分别为:
left:(-1275-383)X 向左移动减
right:(1275+370)X 向右移动加
top:(717+43)Y 向上移动加

向量.png

2.使用 DOLocalMoveX 和 DOLocalMoveY 方法来执行 DOTween 动画。这些方法用于在一定时间内对物体进行局部坐标的移动。

·left.GetComponent<Transform>().DOLocalMoveX(-1275f + 383f, 2f);

  • 将 left 物体在 X 轴方向上移动到 -1275f + 383f 的位置,耗时 2 秒。
    right.GetComponent<Transform>().DOLocalMoveX(1275f - 370f, 2f);
  • 将 right 物体在 X 轴方向上移动到 1275f - 370f 的位置,耗时 2 秒。
    `top.GetComponent<Transform>().DOLocalMoveY(718f - 43f, 2f);
  • 将 top 物体在 Y 轴方向上移动到 718f - 43f 的位置,耗时 2 秒。

这段代码的效果是,在调用 Open 方法后,游戏对象被激活,同时 left、right、top 这三个物体会以动画的形式从初始位置移动到指定的位置,形成一个开启的动画效果。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容