美文网首页Unity相关征服Unity3dunity3D技术分享
Unity3D之关于同时使用NGUI和UGUI的点击穿透问题

Unity3D之关于同时使用NGUI和UGUI的点击穿透问题

作者: 午字横 | 来源:发表于2016-11-07 12:14 被阅读189次

    前几天跟着一个教程做项目,作死的把里面的UI改成了NGUI+UGUI,于是有了这篇文章。以下:

    先说关于UGUI点击穿透的解决办法(官方公布的解决办法)
    EventSystem.current.IsPointerOverGameObject(),这个方法是判断鼠标是否点击到了GameObject上面,注意这个GameObject包括UI也包括3D世界里面的任何物体。这个是我当时参考的链接
    http://www.cnblogs.com/fly-100/p/4570366.html
    至于UGIUI中拖拽功能实现的麻烦程度,各位自行体会吧。

    NGUI点击穿透的问题有两个解决方法:
    UICamera.hoveredObject == null 按教程的意思的是鼠标所在位置没有NGUI组件,但是坑的地方就在这里,这个函数跟EventSystem.current.IsPointerOverGameObject()相互冲突。

    最后我使用NGUI的!UICamera.isOverUI,他是bool类型,即鼠标不再BGUI上鼠标点击生效。
    注意勾选auto-adjust to match。

    NGUI下一定要Attach box collider!
    NGUI下一定要Attach box collider!
    NGUI下一定要Attach box collider!

    成功运行的代码:
    if(!EventSystem.current.IsPointerOverGameObject() && !UICamera.isOverUI){
        //  鼠标点击生效
    }

    相关文章

      网友评论

        本文标题:Unity3D之关于同时使用NGUI和UGUI的点击穿透问题

        本文链接:https://www.haomeiwen.com/subject/zaqouttx.html