c# - 如何检查鼠标位置是否在 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);
}
如何检查鼠标是否在圆形对撞机内?
解决方案
您是否有理由不使用OnMouseEnter()
Unity Builtin?
创建一个脚本并将其附加到GameObject
具有CircleCollider2D
并添加事件的OnMouseEnter()
事件。您也可以选择使用该OnMouseExit()
事件。OnMouseEnter()
并且是由类似等OnMouseExit()
自动触发的事件......Unity
OnCollisionEnter(), OnCollisionExit(), OnGuiEnter()
推荐阅读
- java - 如何将 BigInteger 字符串转换为 ASCII 字符串?
- function - 咖啡脚本中的异步函数
- reactjs - 组件未接收 newProps
- json - WordPress API 媒体查询返回除 jpeg 之外的所有文件类型
- c# - XAML 设计器拒绝接受用户控制
- python - Python - 破折号从 Excel 文件创建堆积条形图
- niftynet - 推理时间说明
- sql - 嵌套 JSON 的 Oracle 查询(具有重复的字段名称和动态的多个嵌套级别)
- c# - 没有完全理解为什么我会在一个类中有一个接口,而不是从它继承
- dart - 尽管使用了 Dart 2.0,但不能省略 'new' 关键字