1.按下鼠标左键,检测鼠标点击到的UI对象
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;public class CustomBookMouseController : MonoBehaviour { public LayerMask m_layerMask = 1; public float m_dis = 1000; public Camera m_rayCamera; // Update is called once per frame void Update () { if (Input.GetMouseButtonDown(0)) { if (EventSystem.current.IsPointerOverGameObject()) { PointerEventData pointerData = new PointerEventData(EventSystem.current); pointerData.position = Input.mousePosition; Listresults = new List (); EventSystem.current.RaycastAll(pointerData, results); for (int i = 0; i < results.Count; i++) { if (results[i].gameObject.layer==LayerMask.NameToLayer("BookUI")) { Debug.Log(results[i].gameObject.name); } Debug.Log(results[i].gameObject); } } } }}
2.物理射线的应用 需要在检测对象上添加碰撞器组件
var ray = m_rayCamera.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfo; if (Physics.Raycast(ray, out hitInfo, m_dis, m_layerMask)) { Debug.Log(hitInfo.collider.gameObject.name); }