场景描述:有一个canvas,为spaceoverlay格式,有若干panel、button子物体;有一个terrain,具有碰撞器;
事件描述:点击屏幕,在点击位置生成一个小圆球,拖动小圆球可以改变位置,选中小圆球可进行删除操作;
问题描述:点击UI控件时,场景中不生成小圆球,也不会触发任何小圆球的响应时间。
下面给出三种方法:
1.对于点击UI时不出发场景物体的响应,网上绝大部分回答都是使用EventSystem.current.IsPointterOverGameObect进行判断,此语句的意思是碰到UI返回true,碰到3D objects返回false,我在unity中进行制作的时候一直都是这么用,在unity中运行良好,所以一直都以为高枕无忧,代码如下,事实上如果你要求不高这样子的确是最简单的做法。
if (Input.GetMouseButtonDown (0)) {
if (EventSystem.current.IsPointerOverGameObject ()) {
Debug.Log ("touch area is UI");}
else { //XXX}
2.然而,我制作的是一个安卓应用,当我发布到安卓手机上后,奇怪的问题就出现了,有时候点击UI,效果很好,但有时候屏幕发出的射线没有被UI阻挡掉,造成我点击按钮也在场景中生成了一个小球,这说明上述的方法在安卓上并不能完美运行。

4254

被折叠的 条评论
为什么被折叠?



