前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity3D 判断点击命中物体对象和命中环境

Unity3D 判断点击命中物体对象和命中环境

作者头像
林德熙
发布2022-08-12 16:44:50
3990
发布2022-08-12 16:44:50
举报
文章被收录于专栏:林德熙的博客

我想要做到点击物体的时候显示一些内容,而点击环境或其他游戏物体的时候隐藏一些内容

本文的脚本都是附加到预置体 Prefab 里面

一个大的空对象包含很多小的物体,在大的空对象上面添加一个脚本,这个脚本核心就是通过 Update 方法里面拿到鼠标点击,判断当前是不是点击这个对象

如下代码放在 SolideCubeElement.cs 代码文件里面

代码语言:javascript
复制
    public bool IsClickedSelf { set; get; }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            if (IsClickedSelf)
            {
            	// 点击到物体
            }
            else
            {
                // 点击到环境
            }

            IsClickedSelf = false;
        }
    }

接下来在对应的能响应点击的物体上面添加如下脚本

代码语言:javascript
复制
    public GameObject mainElement;

    private void OnMouseDown()
    {
        var element = mainElement.GetComponent<SolideCubeElement>();
        element.IsClickedSelf = true;
    }

分别绑定脚本和给物体上面的脚本设置 mainElement 为这个大的空对象

在用户点击物体可以触发 OnMouseDown 方法,在这个方法里面设置 SolideCubeElement 的 IsClickedSelf 属性,刚好 OnMouseDown 会比 Update 方法先进入鼠标点击,此时就可以让空物体判断当前是不是点击到物体

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档