unity为啥射线检测不到ui

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity为啥射线检测不到ui相关的知识,希望对你有一定的参考价值。

首先,要射线检测必须给ui添加碰撞体,然后因为ui默认渲染模式overlay是直接渲染在屏幕上,所以射线从摄像机发射的射线不会经过画布canvas,所以还要将canvas的渲染模式改为world space或者camera模式 参考技术A //从角色位置向NPC发射一条经过鼠标位置的射线
Ray mRay=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit mHi;
if(Physics.Raycast(mRay,out mHi)) //判断是否击中了什么

if(Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0))

if(Vector3 .Distance (this .transform.position ,mHi .transform.position )<10)

if(mHi.collider.gameObject.tag=="NPC")//用的是tag进行辨别

mHi.collider.gameObject.GetComponent <NPCbasic >().OnMouse ();






新手自学,这是我所知道的,如果有好方法,请告诉我,多谢了。本回答被提问者采纳

以上是关于unity为啥射线检测不到ui的主要内容,如果未能解决你的问题,请参考以下文章

unity 射线怎么检测ngui

unity 触摸怎么做射线检测

unity3d射线是怎样检测ui的

Unity 5 ugui.如图,我需要在物品栏中鼠标点击时角色不移动,移动角色是用的射线检测

Unity3D日常开发从物体当前方发射一条射线,并返回射线检测到的物体信息

Unity3D日常开发从物体当前方发射一条射线,并返回射线检测到的物体信息