using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
/// <summary>
/// 测试鼠标穿透问题
/// </summary>
public class Test : MonoBehaviour
{
public GameObject cube;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
/// <summary>
/// 测试鼠标穿透问题
/// </summary>
public class Test : MonoBehaviour
{
public GameObject cube;
void Update()
{
//按下鼠标左键
if (Input.GetMouseButtonDown(0))
{
//当前检测到的是否是UI层
if (EventSystem.current.IsPointerOverGameObject())
{
//是UI的时候,执行相关的UI操作
Debug.Log("是UI");
}
else
{
//不是UI层的时候,执行其它操作
Debug.Log("不是UI");
{
//按下鼠标左键
if (Input.GetMouseButtonDown(0))
{
//当前检测到的是否是UI层
if (EventSystem.current.IsPointerOverGameObject())
{
//是UI的时候,执行相关的UI操作
Debug.Log("是UI");
}
else
{
//不是UI层的时候,执行其它操作
Debug.Log("不是UI");
//射线检测
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//定义射线检测器
RaycastHit hitInfo;
RaycastHit hitInfo;
if (Physics.Raycast(ray, out hitInfo))
{
//如果当前射线检测到的对象的名字是cube
if (hitInfo.collider.name == "Cube")
{
Debug.Log("点击了方块");
}
}
}
}
}
}
{
//如果当前射线检测到的对象的名字是cube
if (hitInfo.collider.name == "Cube")
{
Debug.Log("点击了方块");
}
}
}
}
}
}