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行代码嘛。哈哈哈。弱爆了~

posted @ 2017-08-25 15:59  问号是我  阅读(805)  评论(0编辑  收藏  举报