声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。
Unity功能——编辑器模式下隐藏/显示游戏对象的快捷方法
一.开发环境
unity20XX.X.X
VS20XX
二.问题描述
在编辑器模式下,想快捷的显示/隐藏一个游戏对象.
三.解决方案原理及代码
实现原理:
对组件进行扩展方法.对MonoBehaviour ,Transform,GameObject 组件进行扩展方法
快捷键为Ctrl+Shift+H
注意:因为使用了UnityEditor命名空间,该脚本放在Editor 文件夹下.
对应代码:
/********************************************************************
* 版本声明: v1.0.0
* 类 名 称:ShowOrHideObjByInspect.cs
* 作者名称:明哲
* 创建日期:
* 对应U3D:Unity2018.2.3
* 功能描述:显示或隐藏Inspector面板上物体
*********************************************************************/
using UnityEditor;
using UnityEngine;
namespace MZ
{
public class ShowOrHideObjByInspectTool : ScriptableObject
{
public const string KeyName = "MZSDK/Tools/显示隐藏物体 %#h";
//根据当前有没有选中物体来判断可否用快捷键
[MenuItem(KeyName, true)]
static bool ValidateSelectEnableDisable()
{
GameObject[] go = GetSelectedGameObjects();
if (go == null || go.Length == 0)
return false;
return true;
}
[MenuItem(KeyName)]
static void SeletEnable()
{
bool enable = false;
GameObject[] gos = GetSelectedGameObjects();
foreach (GameObject go in gos)
{
enable = !go.activeInHierarchy;
EnableGameObject(go, enable);
}
}
//获得选中的物体
static GameObject[] GetSelectedGameObjects()
{
return Selection.gameObjects;
}
//激活或关闭当前选中物体
public static void EnableGameObject(GameObject parent, bool enable)
{
parent.gameObject.SetActive(enable);
}
}
}
四.总结
保持饥饿,保持愚蠢.
这世界唯一能够相信的就是你付出的努力和你走过的路.