Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)

一、搭建场景(随意搭建)
Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)_第1张图片
Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)_第2张图片
二、创建Tag标签(这里取名为:Tag_SSJ),且添加给需要显示或隐藏的物体

Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)_第3张图片 Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)_第4张图片
Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)_第5张图片
三、编写脚本

①编写通用的隐藏、显示物体脚本CommonHideObj(实现脚本自动创建物体且给创建物体添加脚本自己)
/***
*	Title:"XXX" 项目
*		主题:实现通用的显示、隐藏物体方法
*	Description:
*		功能:XXX
*	Date:2017
*	Version:0.1版本
*	Author:Coffee
*	Modify Recoder:
*/

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

namespace Global
{
	public class CommonHideObj : MonoBehaviour
	{
        private static CommonHideObj _Instance;                      //本脚本实例



        public static CommonHideObj GetInstance()
        {
            if (_Instance == null)
            {
                _Instance = new GameObject("GlobalMgr").AddComponent();
            }
            return _Instance;
        }

        /// 
        /// 显示或隐藏所有的物体
        /// 
        /// 隐藏的物体数组
        /// 是否显示该数组里的物体
        public void Hide_AllObject(GameObject[] hideGO, bool IsDisplay)
        {
            if (hideGO != null && hideGO.Length >= 1)
            {
                foreach (GameObject go in hideGO)
                {
                    go.SetActive(IsDisplay);

                }
            }

        }

    }//class_end
}
② 编写实现具体的显示、隐藏脚本ViewControl
/***
*	Title:"XXX" 项目
*		主题:XXX
*	Description:
*		功能:XXX
*	Date:2017
*	Version:0.1版本
*	Author:Coffee
*	Modify Recoder:
*/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Global;

namespace SimpleUIFrame
{
	public class ViewControl : MonoBehaviour
	{
        private GameObject[] _HideObj;                           //隐藏物体组


        private void Start()
        {
            //获取到所有的墙物体
            _HideObj = GameObject.FindGameObjectsWithTag("Tag_SSJ");
        }

        /// 
        /// 隐藏物体
        /// 
        public void HideObj()
        {
            CommonHideObj.GetInstance().Hide_AllObject(_HideObj,false);
        }

        /// 
        /// 显示物体
        /// 
        public void DisplayObj()
        {
            CommonHideObj.GetInstance().Hide_AllObject(_HideObj, true);
        }

    }//class_end
}

三、将 实现具体的显示、隐藏脚本 ViewControl添加给_Scripts,同时给对应的显示、隐藏按钮添加对应显示、隐藏方法
Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)_第6张图片
Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)_第7张图片
Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)_第8张图片
四、运行场景,分别点击对应的按钮,就会显示、隐藏对应的物体

首先点击隐藏按钮,则场景的物体隐藏,同时面板中创建了一个名为GlobalMgr物体,且挂载有CommonHideObj脚本
Unity实现通用的显示或隐藏多个物体(同时实现脚本自动创建物体且给创建物体添加脚本自己)_第9张图片

你可能感兴趣的:(Unity基础)