unity 判断鼠标的位置是否在某个2D的UI矩形内
要判断鼠标的位置是否在某个2D的UI矩形内,可以使用以下步骤:
- 获取鼠标当前的屏幕位置,可以使用
Input.mousePosition来获取鼠标在屏幕上的坐标。 - 将屏幕坐标转换为世界坐标,可以使用
Camera.ScreenToWorldPoint()方法将屏幕坐标转换为世界坐标。 - 使用
RectTransformUtility.RectangleContainsScreenPoint()方法来判断世界坐标是否在矩形范围内。该方法需要传入矩形的RectTransform组件、世界坐标以及相机。 - 根据返回的bool值来确定鼠标是否在矩形内。
以下是一个示例代码:
using UnityEngine;
using UnityEngine.UI;
public class MouseInsideUI : MonoBehaviour
{
public RectTransform rectTransform;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Vector2 mousePos = Input.mousePosition;
Vector2 worldMousePos = Camera.main.ScreenToWorldPoint(mousePos);
bool isInside = RectTransformUtility.RectangleContainsScreenPoint(rectTransform, mousePos, Camera.main);
Debug.Log("Is Mouse inside UI: " + isInside);
}
}
}
在上面的示例中,rectTransform是要判断的矩形的RectTransform组件。当鼠标左键按下时,会获取鼠标位置,并判断是否在矩形内,然后将结果打印到控制台上
原文地址: http://www.cveoy.top/t/topic/iZk0 著作权归作者所有。请勿转载和采集!