Unity3D 脚本实现利用Tag对多对象同时显示/隐藏

作者:二三   2019-12-27 12:10:14   662

 首先,我的界面是这样的:


我要做的工作是点击“显示/隐藏图表”按钮将这七个图表进行显示/隐藏。


在按钮上绑定好相应的脚本和函数:



需要让多对象同时显示/隐藏,为了方便,给七个图表相同的Tag,然后用GameObject.FindGameObjectsWithTag()同时控制七个图表显示/隐藏:



由于GameObject.FindGameObjectsWithTag()无法找到隐藏的对象,所以在脚本中我们要将七个图表对象先保存在变量中:

private GameObject[] _Charts;
private void Awake() {
_Charts = GameObject.FindGameObjectsWithTag("Chart");
}


然后在按钮绑定的单击事件(此处是上面图中的ShowHideChart()方法)中写上方法体:

for (int i = 0; i < _Charts.Length; ++i)
{
if (_Charts[i].activeSelf == false)
{
_Charts[i].SetActiveRecursively(true);
}else{
_Charts[i].SetActiveRecursively(false);
}
}


完整代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ButtonFunction : MonoBehaviour
{
private GameObject[] _Charts;
private void Awake() {
_Charts = GameObject.FindGameObjectsWithTag("Chart");
}

public void ShowHideChart() {
for (int i = 0; i < _Charts.Length; ++i)
{
if (_Charts[i].activeSelf == false)
{
_Charts[i].SetActiveRecursively(true);
}

else
{
_Charts[i].SetActiveRecursively(false);
}
}
}
}



热门文章 关于前台使用ajax后台使用PhpSpreadsheet从数据库导出excel 对于Laravel Blade模板转义html标签的记录 PHP-文件上传 去除隐藏字符—— PHP-验证码制作
评论成功!
评论内容不能为空

tips:仅支持jpg,jpeg,png格式图片。