Unity学习笔记 DoTween代码生成自定义路径

问题

虽然DoTween提供了可视化路径点的添加,但往往有时候需要做圆形、椭圆、曲线等难以手动添加路径的情况。这个时候就需要通过代码生成想要的路径。

解决思路

本文以做水平圆形的运动为例子,其他形状的路径思路是一样的,只要能通过数学算出形状的点。

1.计算路径点

根据中心物体(centerObject)和运动物体(moveObject)的位置可求出圆形路线上的路径点。以centerObject为圆心,moveObject为圆上的点,从该点依次计算出每次旋转 x 弧度后的点,这些点即作为路径点。首先计算moveObject初始位置在圆上相对centerObject的X-axis方向呈多少夹角,根据以下公式进行循环计算所有路径点(路径点个数自行设置)并存到circlePoints数组中:

  • 圆心(c1,c2),旋转角度 θ,半径 r ,旋转后得到的点(x1,y1)
    x1 = c1 - r * sin(θ)
    y1 = c1 + r * cos(θ)

    其中 θ = 360除以路径点个数得到,r = centerObjectd到moveObject的X-Z平面上的直线距离

P.S. 为了路径头尾相连,要注意数组保存的第一个路径点和最后一个路径点是否重复,这两者必须有一个是存moveObject的初始位置的。

2.环绕旋转运动

在获得圆形路线上的路径点后,利用这些路径点通过DoTween的路径动画进行环形运动

tweenOfRotation = tweenOBJ
						.DOPath (circlePoints, 10.0f, PathType.CatmullRom) //设置路径为曲线
                        .SetEase (Ease.Linear)  //设置运动状态为匀速运动
                        .SetLookAt(centerPoint)  //设置标题字体一直看向大树
                        .SetLoops(-1)  //设置一直循环运动
                        .SetOptions(true);   //设置运动路径为闭环,即头尾相连

猜你喜欢

转载自blog.csdn.net/weixin_42358083/article/details/122333282