上周由于中秋节放假,人比较懒散,只是在和同学一起完成了关于飞行器旋转及变轨操作后,便早早地溜回了宿舍,趁着今天下午没课,把上周完成的算法大概介绍一下。
在开始写飞行器旋转算法之前,我参考了《unity制作简单的太阳系》一文
https://blog.csdn.net/hcud024/article/details/51360068
因为首先我们要做到飞行器正常地旋转即可,这里我们只需要用到transform.RotateAround(origin.position, axis, speed * Time.deltaTime)方法即可,其中括号里的三个参数,分别代表着:绕点位置、旋转角度、旋转速度,只需要一个函数即可做到飞行器旋转。
然后关于显现飞行器旋转轨迹,我们只需要在unity中设置好 Trail Renderer 组件即可,设置的方法点击 Add Component,输入组件即可。
飞行器的旋转比较简单,然后关于变轨操作,这里一开始,我也没弄懂思路,一味的用transform.Translate(x,y,z)方法在一帧内实现在固定距离的移动,最后可以做到突然变轨,但这显然并不是飞行器合理的变轨现象,在同学的帮助指导下,才明白了作为所谓的程序员思想,即我们不能简单地考虑一个动作的执行,而要把整个操作过程交给计算机进行重复判断执行过程,一下将展示代码: