Unity射线穿透UI解决

这篇具有很好参考价值的文章主要介绍了Unity射线穿透UI解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

unity场景中,射线是可以穿透UI的。我用过很多版本,都有这个问题。

比如我现在用2020版本的unity做了个范例:

我在场景中新建了一个cube名叫:我秦始皇打钱。

点击这个物体就会出现log显示这个物体的名字,代码在下面。

运行之后确实会弹出这个log,这没有什么问题。如下图:

 Unity射线穿透UI解决,unity,ui,游戏引擎

 文章来源地址https://www.toymoban.com/news/detail-614410.html

 代码如下。大括号只有一半,那是我希望你可以动手补上另一半。

 void Update()
    {

        r = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Input.GetMouseButton(0))
        {
            //if (EventSystem.current.IsPointerOverGameObject())//如果有UI阻挡着就返回不响应了
            //    return;

            if (Physics.Raycast(r, out hitInfo, 10f))
            {
                Debug.Log("Hit--" + hitInfo.collider.gameObject.name);//碰撞到的物体的名称

之后我又在物体上面用一个按钮挡住了一部分。

按常理这部分的射线是会被按钮挡住的,不应该再出现log里的内容了,但现实是UI和后面的cube都可以响应,

Unity射线穿透UI解决,unity,ui,游戏引擎

想要不让射线穿透UI 的办法也很简单,在射线碰撞物体代码之前加上一句:

 if (EventSystem.current.IsPointerOverGameObject())//如果有UI阻挡着就返回不响应了
                return;

其实最上面的代码里有这句话,注释掉的就是。

最后,复制代码记得补上缺失的大括号。

 

到了这里,关于Unity射线穿透UI解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity 使用OnMouseDown函数UI点击穿透的问题

    OnMouseDown函数挂载在物体上,点击直接响应函数,使用起来十分快捷方便,但是一直有UI穿透的问题。 通常解决UI穿透的问题是加EventSystem.current.IsPointerOverGameObject()来判断是否点击在UI上,但是在OnMouseDown函数中,这行代码似乎是失效的。 解决这个问题的方法就是: 不用OnMou

    2024年02月04日
    浏览(38)
  • 【Unity3D】实现UI点击事件穿透

              注意:EventSystem.current.RaycastAll获取到的对象列表是能够接受事件的,假如你的按钮Button自己身上没有Image,而是Button的子物体有,那么你就要给这个子物体也加上标签Tag才能响应到。 如果ExecuteEvents.Execute不管用,可以试试ExecuteEvents.ExecuteHierarchy

    2024年02月04日
    浏览(55)
  • Unity2D Sprite尺寸与UI在场景视图和游戏视图显示不一致问题解决方案

    在Unity3D中,当开发2D游戏时,经常会遇到Sprite尺寸与UI在场景视图和游戏视图中显示不一致的问题。这个问题可能导致UI元素变形或者在不同分辨率的设备上显示不正确。本文将为您提供解决这个问题的方法,并附带相应的源代码。 问题分析: Sprite是2D游戏中最常用的图像资

    2024年02月05日
    浏览(92)
  • unity-2D游戏地面检测 三射线检测

        2D游戏中跳跃是不可或缺的功能,要实现跳跃功能,就必须进行地面检测!常规方法是使用一根往角色下方延伸的射线检测,但是这种方法在一些复杂不规则的地面效果通常不尽人意。通过增加射线数量,即可完善这种方法的不足,达到在复杂地面也能正确检测角色是否

    2024年02月15日
    浏览(39)
  • Unity UI适配规则和对热门游戏适配策略的拆解

    本文会介绍一些关于UI适配的基础概念,并且统计了市面上常见的设备的分辨率的情况。同时通过拆解目前市面上较为成功的两款休闲游戏Royal Match和Monopoly GO(两款均为近期游戏付费榜前几的游戏),大致推断出他们的适配策略,以供学习和参考。 设计分辨率: 设计分辨率是指

    2024年03月14日
    浏览(68)
  • 【Unity小技巧】手戳一个简单易用的游戏UI框架(附源码)

    参考原视频链接: 【视频】:https://www.bilibili.com/video/BV1zT411b7L3/ 注意 :本文为学习笔记记录,推荐支持原作者,去看原视频自己手敲代码理解更加深入 开发一款游戏美术成本是极其高昂的,以我们常见的宣传片CG为例,动辄就要成百上千万的价格,因此这种美术物料一般只

    2024年02月11日
    浏览(52)
  • 【Unity游戏开发基础】如何做可以调整音量的UI滚动条组件

    游戏的设置列表中,调整游戏声音大小的选项是必备的,如何实现拖动滚动条后音量相应改变大小呢?这里介绍一下相关的脚本和步骤 首先,新建一个调整音量的脚本,名叫SetVolume,把预置的Update方法和Start方法删除。 然后,这个脚本需要挂载在滚动元素的Slider组件下。这个

    2024年02月03日
    浏览(56)
  • Unity3D学习之UI系统——用NGUI制作游戏登陆界面

    会省略一些东西,可以看我的NGUI的博客 设置UI分辨率自适应 设置Root 的层级 和摄像机渲染的层级为UI 主摄像机不渲染UI 一般都是美术给一个示意图,然后按示意图上拼面板 3.1.1 制作图集 制作两个新图集 3.1.2 拖面板 检查DrawCall 3.1.3 面板基类 创建面板基类, 首先设置成单例

    2024年02月19日
    浏览(75)
  • 「Unity入门」Step by Step的太空清理垃圾游戏Part 3:飞船移动与UI

    完成基础的太空场景后,我们就可以来实现一些可交互的操作了。在这个游戏中主要可交互的操作有控制飞船飞行方向和点按垃圾收集。在游戏开始后,飞船会以恒定的速度向前方移动,用户则可以摇杆来控制飞船左右、上下转动。通过除此之外,还有切换前后镜头、加速等

    2024年02月01日
    浏览(51)
  • 【游戏开发小技】Unity通过UI全屏图来模糊场景画面(Shader | 模糊 | 滤镜 | Blur)

    一、前言 嗨,大家好,我是新发。 以前我写文章都是很长很长,接下来我会尝试用新的方式来写博客,尽量简短,以实用为主。同时也是作为自己零碎的一些记录,方便查阅。 本文我要说的是在 Unity 中通过 UI 全屏图来模糊场景画面的效果。 二、效果演示 这是没用模糊效果

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包