最近几周基本两天通一宵,整个团队都在努力赶出一版技术删档测试包,也没时间来写点东西。正好今天有点时间来整理下。
这篇主要说下 uniyt项目build到iphone运行后无法正常触发 collider 这个问题。
一般我们都知道如果无法正常触发监听事件,无非有如下几种情况:
1. 没有添加 collider
2. 挂载的 collider 的尺寸没有与go保持一致。
3. 被其他组建遮挡,事件被截取了
那么如果一个事件在unity editor 中正常被响应(且检查collider没有如上3种情况的问题),编译到iphone运行无法正常触发事件,如何解决呢?
himi先给出一张截图:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CMwMDe0YTMtIzMxg2LcVDMvwVNxAjMvw1ckF2bsBXdvwFduVGdu92YtA3dvwVbvNmLl1WYnlWbphmL3d3dvw1LcpDc0RHaiojIsJye.png)
通过这个截图大家可以看到, widget 的一个box collider 属性被勾选了,所以运行时,box collider这个组建不管它的尺寸是多少,被触发时都会默认将其尺寸设定为与widget 尺寸保持一致。
但是!如果仅仅勾选了widget的box collider 而不去检查box collider这个组建的尺寸大小是否一致的话(如上图,widget的尺寸是110×110,box collider 尺寸是 0,0),虽然在unity editor中运行正常使用~~ 但是当项目编译ios项目运行到iphone时就会出现无法正常响应触发这个collider!!
原因不知道是否是unity 的bug,如果只是单单勾选了 widget的 box collider属性,而box collider尺寸设定的不一致,在iphone 和 win上都会出现无法被触发的问题。
不知道这个问题是不是跟unity3d版本也有关系,当前我使用的版本是4.6.4f1