Unity 鼠标点击判断图片是否属于 Canvas
在 Unity 中,可以使用以下代码来判断鼠标点击的图片是否属于 Canvas:
using UnityEngine;
using UnityEngine.EventSystems;
public class CanvasChecker : MonoBehaviour
{
public Camera mainCamera;
public Canvas canvas;
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
GameObject hitObject = hit.collider.gameObject;
if (hitObject.transform.IsChildOf(canvas.transform))
{
Debug.Log('Mouse clicked on an object within the canvas.');
}
}
}
}
}
上面的代码假设你已经创建了一个名为'CanvasChecker'的脚本,并将其添加到一个空的游戏对象上。在这个脚本中,你需要将主摄像机('mainCamera')和 Canvas('canvas')分配给相应的变量。
在'Update'方法中,我们使用'Input.GetMouseButtonDown(0)'来检测鼠标左键是否按下。如果是,我们将通过射线投射来获取鼠标下面的物体。如果这个物体是 Canvas 的子物体,就说明鼠标点击的是 Canvas 内的图片。你可以在这个条件下添加你想要执行的代码。
原文地址: https://www.cveoy.top/t/topic/pkMc 著作权归作者所有。请勿转载和采集!