轮转图,通常都是玩家拖拽不同角色然后进行选取角色。我们所了解的轮转图分为移动,惯性移动,然后对齐结束三部分。
一.
首先,生成3D物体,它们是在同一个空对象下。所以我们拖拽其中一个物体的时候,就可以直接让空对象进行移动,以至于达到轮转的效果。
1.我们可以指定3D物体的数量。
2.然后通过anger=(2*Mathf.PI)/num算出角度。
3.通过mathf.sin算出3D物体的x坐标,mathf.cos算出3D物体的z的坐标。
二.
3D轮转图是拖拽3d角色,而我们是通过在屏幕上拖拽的距离进行3D物体的移动。这就需要我们进行坐标的转换。
1.当我们按下鼠标时,我们需要记录3D物体最初的位置。
2.当我们进行物体拖拽时,然后对拖拽的3D物体的位置进行记录,然后计算出它们位置x的差值。
这个就是3D物体的移动距离。我们就可以直接调用移动方法。
3.同样,惯性也是如此。
三.移动
1.角度=距离/半径
由此我们可以算出转动的总角度,然后对物体位置进行从新赋值,以达到移动的效果。
四.惯性移动
通过Doweent从而实现惯性的移动效果。
五.对齐
1.先求出与中间值的偏差角度
float ang = Mathf.Atan(sortlist[num - 1].localPosition.x / sortlist[num - 1].localPosition.z);
2.求出距离,时间,用Doweent实现对齐。
3.注释部分为转动到指定物体。