U3D自定义
发布日期:2021-06-30 14:56:46 浏览次数:3 分类:技术文章

本文共 1564 字,大约阅读时间需要 5 分钟。

using UnityEngine;using UnityEditor;  //需要引入这个,还有这个脚本要放在Editor文件夹里才会生效using System;//ScriptableObject 这个可以不用挂在物体上public class Jerry_custom : ScriptableObject{	// 这个字符串是在菜单栏里新建了一个Custom,点开后Useful Tool 然后是[color=#008ef1][color=#000000]EnableDisable Multi,%#h 代表的是ctrl+shift+h 快捷键组合[/color][/color]	public const string MENU_DISABLE_MULTI_GAMEOBJ = "Custom/Useful Tool/Enable or Disable Multi GameObj %#d";//这个是设置选中物体及其子物体的激活状态	public static void EnableODisableChildNote (Transform parent, bool enable)	{		parent.gameObject.active = enable;		for (int i = 0; i < parent.childCount; i++) {			Transform child = parent.GetChild (i);			if (child.childCount != 0) {				EnableODisableChildNote (child, enable);			} else {				child.gameObject.active = enable;			}		}	}	//这个是设置这个命令什么时候可用,只有在选中一个gameobject的时候,这个命令才会生效,也就是只有选中一个或多个物体的时候快捷键才会起作用	[MenuItem(MENU_DISABLE_MULTI_GAMEOBJ, true)]	static bool ValidateSelectEnableODisable ()	{		GameObject[] gos = GetMultiSelectedGameObject () as GameObject[];		if (gos == null) {			return false;		}		if (gos.Length == 0) {			return false;		}		return true;	}	//这个就是执行命令的函数了,找到选中的物体,及其所有子物体,然后设置他们的激活状态,	[MenuItem(MENU_DISABLE_MULTI_GAMEOBJ)]	static void SelectEnableODisable ()	{		GameObject[] gos = GetMultiSelectedGameObject () as GameObject[];		//        Undo.RegisterUndo (gos, "EnableODisable GameObject");		bool enable = !gos [0].active;		foreach (GameObject go in gos) {			EnableODisableChildNote (go.transform, enable);		}	}	//返回选中的gameobject	static GameObject[] GetMultiSelectedGameObject ()	{		return Selection.gameObjects;	}}

转载地址:https://jerryjin.blog.csdn.net/article/details/83341923 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android Studio 连不上 夜神模拟器
下一篇:U3D 复制曲线

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月29日 02时27分51秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章