描述:
抄袭宠物小精灵,把高德地图的MAMapView和Unity 3D的UnityView重叠,Unity的View在上层,所以Unity 的View阻挡了高德地图View的事件。
用_unityView.userInteractionEnabled = NO;的话,那么Unity就没有触摸事件了。
目前在尝试的方案是:
方案一:
设置两个View的关系,然后在上层UnityView的- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event等触摸响应事件里增加
[[self nextResponder]touchesBegan:touches withEvent:event];
或
[super touchesBegan:touches withEvent:event];
来调用下层高德的触摸事件,让他们同时响应事件。
方案二:
用户点击屏幕 -> Unity接收到消息并识别是否点击到Unity中的UI、模型等元素,如果返回false则发送消息给ios(已经实现到这一步) -> ios转发这个触摸事件给下层的高德地图View,控制地图平移缩放等操作。
PS:方案二中,我在UnityView里添加了-(UIView*) hitTest:(CGPoint)point withEvent:(UIEvent *)event{},想在触摸时根据Unity返回判断是返回是否点击到Unity中的UI、模型等元素,而决定到底是返回self还是下层的UIView,但unity通知给ios触摸结果这个动作,是建立在Unity接收到触摸事件之后的,这样的顺序又不能实现预先判断
(这两个方案都是因为不懂ios开发而失败)
Xcode(Version 7.3.1)工程链接:
https://yunpan.cn/cMtVYbHLDJm3j (提取码:f7e6)
解决方案1:
悬赏要在众包平台上发布!