如何解决鼠标的穿透问题

using System.Collections;
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");
                //射线检测
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                //定义射线检测器
                RaycastHit hitInfo;
                if (Physics.Raycast(ray, out hitInfo))
                {
                    //如果当前射线检测到的对象的名字是cube
                    if (hitInfo.collider.name == "Cube")
                    {
                        Debug.Log("点击了方块");
                    }
                }
            }
        }
    }
}



猜你喜欢

转载自blog.csdn.net/wk201403010114/article/details/78343771