#Unity自定义摇杆
Unity利用自带的UGUI进行制作摇杆,并且利用事件来自定义注册具体的实现。
摇杆只要组成就是一个背景图片和一个中心的用来触摸的圆。
具体需要哪种事件,根据自己的逻辑来判断实现,不一定所有都需要。
文末会附演示工程文件。
注意:此方式仅适用于覆盖模式画布下,相机模式下此方法不适用。
##摇杆的事件代码
public class JoyStick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler, IEndDragHandler
{
public float outerCircleRadius = 50;//可以拖动的最大距离
Transform thumb;//触摸球
Vector2 thumb_start;
Vector2 direction;//滑动方向
public Action<Vector2> onJoystickDownEvent; // 按下事件
public Action onJoystickUpEvent; // 抬起事件
public Action<Vector2> onJoystickDragEvent; // 滑动事件
public Action<Vector2> onJoystickDragEndEvent; // 滑动结束事件
void Start()
{
thumb = transform.Find("Thumb");
thumb_start = transform.position;
//初始化起始位置为陀螺仪的位置 下边利用减法计算相对位置
}
/// <summary>
/// 按下
/// </summary>
pu