我想要做到点击物体的时候显示一些内容,而点击环境或其他游戏物体的时候隐藏一些内容
本文的脚本都是附加到预置体 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 方法先进入鼠标点击,此时就可以让空物体判断当前是不是点击到物体