如何实现陨石围绕地球旋转

想实现一堆陨石围绕地球旋转的效果,陨石是prefab动态添加的,使用rotateby函数陨石只能以自己内部的锚点为中心点来旋转,请问这种场景应该用什么方法?

1赞

可以使用贝塞尔曲线。

一条贝塞尔就可以完成的, 一个动画序列, 里面又贝塞尔,大小 ,位置 基本上就可以了, 再加入一个动作的循环。不过2D做这种,要调这个的时间可能要很久!

用三角函数计算一下就好了
地球是圆心
陨石是圆上的点

直接改陨石的锚点,(-10,0.5)就好啦,(-10这个值根据陨石跟地球的距离修改)

给你一个公式
ball.x=centerX+Math.cos(angle)*radius;
ball.y=centerY+Math.sin(angle)*radius;

center中心点位置
angle角度自加,可以默认为0然后angle+=dt
radius是半径

首先感谢回答~
不过我理解你说的这种只是移动,没有旋转?就是类似月亮面向地球的应该是同一面

这个好像可以 我设置锚点为(2,2)看起来大概是那个意思

请问贝塞尔曲线是说移动轨迹是椭圆之类的吗 我就想圆周运动就可以了 楼下说的那种设置锚点超过1的我感觉好像可以

那简单,你把锚点设置到球外面,然后直接使用ball.angle+=1就可以了,这样它就会一个面一直对着锚点方向做圆周运动。

是可以的,这个最简单。【给我个对勾

直接给你写个类,你把这个类拖到你的对象上面,简单修改面板上的参数就可以了。
animation.rar (856 字节)

贝塞尔曲线理论可以实现任何轨迹!:grinning:

可以看看我这个组件 RotateAround