Unity 虚拟摇杆编写经验总结
在开发MOBA类项目的时候常用到虚拟摇杆。
之前一直发现自己想的很复杂。最后总结下来4句代码:
_CurDir = (mousePos - (Vector2)(Rocker.transform.position)).normalized; var moveScale = Vector3.Distance( mousePos, Rocker.transform.position ) / 150; if( moveScale > 1 ) moveScale = 1; RockerTop.transform.localPosition = _CurDir * 150 * moveScale;
_CurDir 是一个 Vector2 类型;
mousePos 当前鼠标的位置
Rocker 虚拟摇杆根节点
moveScale 摇杆的拉升 ( 就是拖动比例 )
其中150这个数值 是摇杆底部图片的半径
moveScale 是摇杆的拉升比例 不得超过1
RockerTop 摇杆上面可以移动的那个小圆球
最后用
当前的摇杆 方向 * 半径 * 拉升比例
就能如期的让摇杆的小圆球显示在指定位置
总结下来,其实摇杆不过也就4行代码嘛。哈哈哈。弱爆了~
把握好方向,踏着脚下的路.做一个傻子 - 终会有一个终点.