我正在开发一款基于2D回合的游戏,我处于可以处理鼠标和触摸的状态。
游戏有六角形地图,需要平移,缩放和点击动作。
我决定应用委托模式,因此每个需要操作的对象都会将事件发送给其代理人,他们会做什么或不做什么。
通过这种方式,所有输入都汇聚到一个TurnManager,通过状态机,根据当前游戏状态处理事件。
实施例:
MapCell.OnMouseUpAsButton()
来电
delegate.OnCellClick(MapCell)
一切运作良好,通过这种方式我可以处理 做某事。< 当我开始在地图中实现缩放和 Pan 时,问题就出现了。
对于这两个动作,我必须避免使用经典 Monobehaviour 方法( OnMouseDown , OnMouseUpAsButton ,...)并使用 LateUpdate 点。 所以, 并使用委托模式唤起以下操作: 为避免对UI元素进行平移或点击, TurnManager 会使用 问题 问题 PS:如果需要,我可以显示代码
<>
我在 LateUpdate 中创建了一个 CameraHandler :
EventSystem.current.IsPointerOverGameObject()
过滤收到的事件
在Mac /鼠标上一切都很棒! :d
在智能手机/触控上,我无法点击任何内容,只有潘正在工作。设备上的调试是恶意的,因为缺少断点或控制台。