本打算用EventTrigger组件实现的,但是它会导致父对象的事件被拦截
Canvas Render Mode = Screen Space的情况下,解决方案如下RectTransform.GetWorldCorners
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
Vector3[] fourCornersArray = new Vector3[4];
RectTransform rectTransform = GetComponent<RectTransform>();
rectTransform.GetWorldCorners(fourCornersArray);
var pos = Input.mousePosition;
bool isInRect =
pos.x >= fourCornersArray[0].x &&
pos.x <= fourCornersArray[2].x &&
pos.y >= fourCornersArray[0].y &&
pos.y <= fourCornersArray[2].y;
Debug.LogError(isInRect);
}
}