1.LeanTouch对点击UI的判定
有些情况下只需要对手指点击到的物体进行操作,LeanTouch封装了一堆方法来实现这个(本质上是从鼠标射线检测第一个LeanSelectable):
(1)为需要拖动的物体添加LeanSelectable
LeanSelectable封装了几个监听事件:OnSelect,OnSelectSet,OnSelectUp
(2)新建一个GameObject挂载上LeanSelect和LeanFingerDown(还可以是LeanFingerUp等,对应LeanTouch的几个监听事件),并将LeanSelect.SelectScreenPosition注册到LeanFingerDown的执行事件
主要逻辑:点击的时候调用LeanSelect.SelectScreenPosition,使用当前鼠标屏幕坐标做射线检测(可以设置layer),拿到检测到的第一个挂载LeanSelectable的UI,触发这个UI的Select方法,注册LeanTouch监听。
个人感觉:LeanTouch比较适合处理一个界面上有多个UI要实现拖动的场景,所有操作不是分布在各个脚本中,只需在脚本中实现LeanTouch中注册事件,具体判断哪个UI被拖动的判断只在LeanTouch中,比较好管理。