在 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录