在Unity3D上使用鼠标/触摸键控制平移、缩放和单击
我正在开发一款基于2D回合的游戏,我可以处理鼠标和触摸。在Unity3D上使用鼠标/触摸键控制平移、缩放和单击,unity3d,input,delegates,pan,Unity3d,Input,Delegates,Pan,我正在开发一款基于2D回合的游戏,我可以处理鼠标和触摸。 游戏有一个六边形地图,需要平移、缩放和单击操作。 我决定应用委托模式,这样每个需要操作的对象都会将事件发送给其委托人,委托人将执行或不执行这些操作。 通过这种方式,所有输入都汇聚到一个TurnManager,该TurnManager通过一个状态机,根据当前游戏状态处理事件。 例如: MapCell.OnMouseUpAsButton()调用 delegate.OnCellClick(MapCell) 一切都很好,这样我就可以在做某事时处理
游戏有一个六边形地图,需要平移、缩放和单击操作。
我决定应用委托模式,这样每个需要操作的对象都会将事件发送给其委托人,委托人将执行或不执行这些操作。 通过这种方式,所有输入都汇聚到一个TurnManager,该TurnManager通过一个状态机,根据当前游戏状态处理事件。
例如:
MapCell.OnMouseUpAsButton()
调用
delegate.OnCellClick(MapCell)
一切都很好,这样我就可以在做某事时处理 当我开始在地图中实现缩放和平移时,问题就出现了。 对于这两个操作,我必须避免使用经典的单行为方法(OnMouseDown、OnMouseUpAsButton等)并使用LateUpdate。
所以,
我创建了一个CameraHandler,在最新更新中使用:
- 手推车
- HandleTouch()
- OnMapWillPan()
- Onmapan()
- OnMapEnd()
EventSystem.current.IsPointerOverGameObject()过滤收到的事件
问题
在Mac/鼠标上,一切都很好D
在智能手机/触摸屏上,我不能点击任何东西,只有Pan在工作。由于缺少断点或控制台,设备上的调试是地狱般的。
问题
- 你处理过这些事情吗?怎么做
- 你用了哪种方法
- 你认为我做错了什么
- 是否有最佳实践来避免此类问题并正确处理跨平台输入
- 关于这个论点有什么好的讲座/书吗?
PS:如果需要,我可以显示代码也许你应该发布当前的平移、缩放并单击代码。很多人都愿意看一看,然后告诉你出了什么问题。有很多代码,我必须总结一下。我将编辑问题,稍后添加它