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

2025-01-06 15:47:19
推荐回答(1个)
回答1:

//从角色位置向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 ().OnMouse ();
}

}
}
}

新手自学,这是我所知道的,如果有好方法,请告诉我,多谢了。