Unity3d 如何获得鼠标下的对象-Unity

Unity3d 如何获得鼠标下的对象-Unity,unity3d,Unity3d,如何获得鼠标下的对象-Unity 我需要捕捉场景中鼠标指针下的特定对象。有什么代码可以做到这一点吗?我找到了解决方案 int layerObject = 8; Vector2 ray = new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y); RaycastHit2D hit = Physics2D.Rayc

如何获得鼠标下的对象-Unity

我需要捕捉场景中鼠标指针下的特定对象。有什么代码可以做到这一点吗?

我找到了解决方案

int layerObject = 8;
Vector2 ray = new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
RaycastHit2D hit = Physics2D.Raycast(ray, ray, layerObject);
if (hit.collider != null)
{
    Debug.Log(hit.collider.gameObject.GetComponent<YourObject>().YouAttribute);
}
int layerObject=8;
Vector2射线=新的Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x,Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
RaycastHit2D hit=Physics2D.Raycast(光线,光线,层对象);
if(hit.collider!=null)
{
Log(hit.collider.gameObject.GetComponent().YouAttribute);
}

如果它有一个碰撞器,您可以对每个对象使用onMouseCenter,或者,从鼠标位置进行光线投射和光线投射,看看它击中了什么。。你为什么要尝试什么?你遇到了什么问题?我正在静态对撞机中使用onMouseEnter2D和onMouseExit2D。我还有一个动态对撞机,它最终运行在静态对撞机上。我遇到的问题是,当鼠标位于静态碰撞器上时,OnMouseEnter2D被激活,但当动态碰撞器经过此静态碰撞器时,静态碰撞器的onmouseext2d被激活。我希望OnMouseEnter2D和OnMouseExit2D能够在不受动态碰撞器影响的情况下工作。因此,这个问题让我认为必须有某种方法来捕获鼠标指针下的所有对象。请参阅我读到的第一条评论,但问题是当动态碰撞器经过这个静态碰撞器时,静态碰撞器的OnMouseExit2D被激活。然后,当dinamic碰撞器的dinamic碰撞器离开该区域时,OnMouseEnter2D再次激活。