摇杆的制作

//UI事件监听插件
public class PEListener : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler,IPointerClickHandler
{
public Action onClickDown;
public Action onClickUp;
public Action onDrag;
public Action onClick;
public object args;
public void OnPointerClick(PointerEventData eventData)
{
if (onClick != null)
{
onClick(args);
}
}
public void OnPointerDown(PointerEventData eventData)
{
if (onClickDown != null)
{
onClickDown(eventData);
onDrag(eventData);
}
}
public void OnPointerUp(PointerEventData eventData)
{
if (onClickUp != null)
{
onClickUp(eventData);
}
}
public void OnDrag(PointerEventData eventData)
{
if (onDrag != null)
{
onDrag(eventData);
}
}

public void RegisterTouchEvts()
{
OnClickDown(imgTouch.gameObject, (PointerEventData evt) =>
{
startPos = evt.position;
SetActive(imgDirPoint);
imgDirbg.transform.position = evt.position;
});
OnClickUp(imgTouch.gameObject, (PointerEventData evet) =>
{
//defaultPos 默认位置
imgDirbg.transform.position = defaultPos;
SetActive(imgDirPoint,false );
imgDirPoint.transform.localPosition = Vector2.zero;
//方向信息传递
MainCitySys.Instance.SetMoveDir(Vector2.zero);
});
OnDrag(imgTouch.gameObject, (PointerEventData evet) =>
{
Vector2 dir = evet.position - startPos;
float length = dir.magnitude;
if (length > Constant.ScreenOPDis)//***
{
//把距离限制在控制距离内
Vector2 clampDir = Vector2.ClampMagnitude(dir, Constant.ScreenOPDis);
imgDirPoint.transform.position = startPos + clampDir;
}
else
{
imgDirPoint.transform.position = evet.position;
}
MainCitySys.Instance.SetMoveDir(dir.normalized);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值