返回首页DA系统C#IDE文件同步服务屏保 今天是: 2026-05-05    "立夏"  夏季的第一个节气,表示盛夏时节的正式开始

搜索
热搜: linux 技术
Hi~登录注册
查看: 1572|回复: 0

[转载] 【转载】unity2d场景判定鼠标点击在对应的物体上

[复制链接]
发表于 2024-6-5 09:25:28 | 显示全部楼层 |阅读模式

少侠不来段修仙之旅吗~

您需要 登录 才可以下载或查看,没有帐号?注册成为修仙之旅的少年~

x
unity2d场景判定鼠标点击在对应的物体上


不管那个方法,都必须先确保你的sprite或者其他GameObject有Collider2D组件

1.Raycast法
原理相同于3D中得Raycast法,具体使用略有区别。


RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);

if(hit.collider != null)
{
  Debug.Log ("Target Position: " + hit.collider.gameObject.transform.position);
  //and do what you want
}



2.Overlap法
个人觉得这个方法对于2D更合适一些,判断点击的点落在了哪些collider中--常用。


Collider2D[] col = Physics2D.OverlapPointAll(Camera.main.ScreenToWorldPoint(Input.mousePosition));

void Update()
    {
        //实时检测鼠标是否移动到物体上
        col = Physics2D.OverlapPointAll(Camera.main.ScreenToWorldPoint(Input.mousePosition));

        if (col.Length > 0)
        {
            foreach (Collider2D c in col)
            {
                if (c.gameObject.name == "GameObject_Name")
                {
                    //移动到对应物体时同时按下鼠标左键时执行
                    if (Input.GetMouseButtonDown(0))
                    {
                        Print("调用对应的方法即可");
                    }
                }

            }
        }



游客
回复
*滑块验证:

DA论坛飞机票来了~
快速回复 返回顶部 返回列表