阿里的博客 http://blog.sina.com.cn/haodengli [订阅][手机订阅] 首页博文目录图片关于我 个人资料 阿里 阿里 微博 加好友发纸条 写留言加关注 博客十周年地图 博

把以下脚本放在unity工程文件夹内的Editor 文件夹下  ,选中多个物体 按下 “command 加shift 加 d ”即可改变选中物体的激活状态




//          MyEditorTool.cs

using UnityEngine;

using UnityEditor;

using System;


public class MyEditorTool : ScriptableObject

{

    //  设置菜单Tool 下的 MyTool 下的 Enable\Disable Multi GameObj 快捷键为  command 加shift 加 d  <MAC上的>

    public const string MENU_DISABLE_SELECTED_GAMEOBJ = "Tool/MyTool/Enable\\Disable Multi GameObj %#d";  //%#d 即代表 command 加shift 加 d快捷键


    [MenuItem(MENU_DISABLE_SELECTED_GAMEOBJ,true)]

    static bool ValidateSelectEnableODisable ()

    {

        GameObject[] gobj = GetSelectedGameObject () as GameObject[];

              if (gobj == null) {

            return false;

        } 

             if (gobj.Length == 0) {

            return false;

        }

         return true;

    

       }


    [MenuItem(MENU_DISABLE_SELECTED_GAMEOBJ)]

       static void SelectEnableODisable ()

    {

            GameObject[] gobj = GetSelectedGameObject () as GameObject[];

            bool enable = !gobj [0].active;

       foreach (GameObject go in gobj) {

       EnableODisableChildNote (go.transform, enable);

       }

     }

     //激活或者关闭选中的物体及其子物体

        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;

                 }

          }

      }

     // 返回选中的物体

        static GameObject[] GetSelectedGameObject ()

    {

               return Selection.gameObjects;

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值