欢迎访问设·集合!

设·集合

您现在的位置是:首页 > 设计思维 > 常见问题

如何判断鼠标是否点击在UI界面上或是3D模型上?

设·集合小编 发布时间:2023-03-21 19:43:38 129次最后更新:2024-03-08 11:40:37

实际工程中往往3D场景与UI界面并存,往往UI界面比3D场景优先级高,鼠标在UI界面上时,不能选中UI界面后面的3D模型。今天本文内容主要 给大家带来了,如何判断鼠标是否点击在UI界面上或是3D模型上的操作演示。希望能帮助到有需要的人。

溜溜自学全站800 免费视频教程,点击免费试学设计课程>>

工具/软件

电脑型号:联想(Lenovo)天逸510S; 系统版本:Windows7; 软件版本:UG

方法/步骤

第1步

      最常见的一个功能模块就是实现判断鼠标是是否在UI界面上()介绍一个我自己常用的判断模块

第2步

      public static bool IsMouseOverUI  {    get    {           Vector3 mousePostion = Input.mousePosition;      GameObject hoverobject = UICamera.Raycast(mousePostion) ? UICamera.lastHit.collIDer.gameObject : null;      if (hoverobject != null)      {        return true;       }      else      {        return false;      }    }  }普及一下C#中?:运算符的知识:表达式1?表达式2:表达式3 ;如果1为真则执行2,为假执行3

第3步

      这段代码的意思是,从鼠标所在位置搭设一条射线,如果UICamera.Raycast(mousePostion)返回true,hoverobject=UICamera.lastHit.collIDer.gameObject 。如果返回为false,hoverobject=null。

第4步

      判断鼠标点击的3D模型响应事件Ray ray = Camera.mAIn.ScreenPointToRay(Input.mousePosition);            RaycastHit hitInfo;            if (PhysiCS.Raycast(ray, out hitInfo))            {              GameObject Obj = hitInfo.transForm.gameObject;              if (Obj.tag == “123”)              {               DebUG.Log("鼠标点击了3D物体123");              }              else              {               DebUG.Log("鼠标没有点中任何物体");              }

第5步

      上面判断鼠标是否在UI上的方法是,NGUI判断法。现在介绍一下UGUI如何判断鼠标是否在UI上,其中添加了鼠标左键、双击判断
广告位

热心评论

评论列表