Skip to content

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

Updated: at 08:22,Created: at 19:57

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

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

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

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

public bool IsClickedSelf { set; get; }
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
if (IsClickedSelf)
{
// 点击到物体
}
else
{
// 点击到环境
}
IsClickedSelf = false;
}
}

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

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

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

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

unity中的获取点击对象_游戏_liuzhongchao123的博客-CSDN博客

【Unity 3D学习】获取鼠标点击所对应的GameObject_游戏_既然选择了远方,便只顾风雨兼程!-CSDN博客

Unity在游戏中鼠标点击选中GameObject物体并打印其名字_游戏_w8ed-CSDN博客

unity中使用SetActive()和gameobject实例化的陷坑总结_游戏_wdear0401的博客-CSDN博客


知识共享许可协议

原文链接: http://blog.lindexi.com/post/Unity3D-%E5%88%A4%E6%96%AD%E7%82%B9%E5%87%BB%E5%91%BD%E4%B8%AD%E7%89%A9%E4%BD%93%E5%AF%B9%E8%B1%A1%E5%92%8C%E5%91%BD%E4%B8%AD%E7%8E%AF%E5%A2%83

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。 欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系