首页 > 解决方案 > 如何检查鼠标位置是否在 circleCollider2D 内

问题描述

我正在尝试检查鼠标位置是否在 circleCollider2D 内。

我正在检查更新中的对撞机边界,但只返回一个框而不是一个圆圈

void Update() {
    CircleCollider2D collider2D = GetComponent<CircleCollider2D>();
    Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);

    Debug.Log(collider2D.bounds.Contains(new Vector2(mousePosition.x, mousePosition.y)));
    Debug.DrawLine(collider2D.bounds.ClosestPoint(mousePosition), mousePosition);
}

问题演示

如何检查鼠标是否在圆形对撞机内?

标签: c#unity3d

解决方案


您是否有理由不使用OnMouseEnter()Unity Builtin?

创建一个脚本并将其附加到GameObject具有CircleCollider2D并添加事件的OnMouseEnter()事件。您也可以选择使用该OnMouseExit()事件。OnMouseEnter()并且是由类似等OnMouseExit()自动触发的事件......UnityOnCollisionEnter(), OnCollisionExit(), OnGuiEnter()


推荐阅读