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 5 ugui.如图,我需要在物品栏中鼠标点击时角色不移动,移动角色是用的射线检测