//检测 鼠标按下时 屏幕鼠标下的 3d物体
void Cheack3d()
{
//检测 鼠标按下时 屏幕鼠标下的 3d物体
if (Input.GetMouseButtonDown(0))
{
//3D检测 鼠标下的物体
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitinfo;
bool isCollider = Physics.Raycast(ray, out hitinfo);
if (isCollider)
{
Debug.Log("鼠标选中的模型名称:"+hitinfo.collider.gameObject.name );
}
}
}
//检测 鼠标按下时 屏幕鼠标下的 2d物体,要求对方物体拥有包围盒
void Cheack2d()
{
if (Input.GetMouseButtonDown(0))
{
//2d检测 鼠标下的物体
Ray myRay = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit2D hit = Physics2D.Raycast (new Vector2(myRay.origin.x, myRay.origin.y), Vector2.down);
if (hit.collider) {
//do something print (hit.collider);
Debug.Log("2d物体名称:"+ hit.collider.name);
}
/*
//2d检测 鼠标下的物体数组
Ray myRay = m_Camera .ScreenPointToRay(Input.mousePosition);
RaycastHit2D[] hit = Physics2D.RaycastAll(new Vector2(myRay.origin.x,myRay.origin.y), Vector2.down);
if (hit.Length>0){
for (int i = 0; i < hit.Length; i++)
{
Debug.Log("hit:"+ hit[i].collider.name);
}
}
*/
}
}
Unity骚操作之: 获取光标(鼠标)点击中的 带Collider包围盒物体(包含添加了包围盒的UI)
于 2020-05-20 10:55:18 首次发布