仅当命中的游戏对象不在画布中时,此脚本才会在控制台上显示消息。在位于画布内的按钮上释放鼠标按钮时,脚本不会调试任何内容。我该如何解决这个问题?
RaycastHit hit;
void Update ()
{
if(Input.GetMouseButtonUp(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//RayHit hit;
if(Physics.Raycast(ray, out hit))
{
// do what you want
Debug.Log(hit.collider.gameObject.tag);
}
}
}
答案 0 :(得分:1)
您可以像这样使用来获取单击的UI对象。
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (EventSystem.current.IsPointerOverGameObject())
{
Debug.Log(EventSystem.current.currentSelectedGameObject.GetComponent<Text>().name);
}
EventSystem.current.currentSelectedGameObject.GetComponent()。名称
将返回点击的对象和
EventSystem.current.IsPointerOverGameObject()
将检查是否有点击UI对象。