unity3d怎么判定射线是不是碰到物体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d怎么判定射线是不是碰到物体相关的知识,希望对你有一定的参考价值。

参考技术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

首先,要射线检测必须给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 ();






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

以上是关于unity3d怎么判定射线是不是碰到物体的主要内容,如果未能解决你的问题,请参考以下文章

unity3d 射线的原理,基础用法

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

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

unity 射线怎么检测ngui

unity 触摸怎么做射线检测

Unity3D_(API)射线检测