直接看代码,编译后通过改写 ProjectSetting/tagmanager 实现预设Layer效果,并且可以扩展更多关于Layer的功能

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;[InitializeOnLoad]
public class LayerTest
{/*编辑器,物体layer层的设置,用户在20-30的层进行设置,10-20层是内部使用8-PostProcessing9-RealityScene10-bgCamera11-maskCamera12-arCamera13-panorama*/public enum InnerSettingLayer{PostProcessing = 8,RealityScene = 9,bgCamera = 10,maskCamera = 11,arCamera =12,panorama = 13,}static LayerTest(){SerializedObject tagManager = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath("ProjectSettings/TagManager.asset")[0]);SerializedProperty layers = tagManager.FindProperty("layers");if (layers == null || !layers.isArray){Debug.LogWarning("Can't set up the layers.  It's possible the format of the layers and tags data has changed in this version of Unity.");Debug.LogWarning("Layers is null: " + (layers == null));return;}//内部设置Layer层级foreach (var item in Enum.GetNames(typeof(InnerSettingLayer))){int value = (int)Enum.Parse(typeof(InnerSettingLayer), item);if (value > 20){EditorUtility.DisplayDialog("警告", "Layer 10-20层 限制为编辑器内部使用,用户在20层后进行设置","知道了");continue;}SerializedProperty layerSP = layers.GetArrayElementAtIndex(value);if (layerSP.stringValue == item){//Debug.LogError("已设置该Layer:"+ item);}else{if (string.IsNullOrEmpty(layerSP.stringValue)){layerSP.stringValue = item;}else{if (EditorUtility.DisplayDialog("提示", "当前Layer:" + layerSP.stringValue + "不等于 预设值:" + item, "使用预设值", "忽略")){layerSP.stringValue = item;}}}}tagManager.ApplyModifiedProperties();}
}

Unity Layer预设 默认设置Layer相关推荐

  1. 【ParaView教程】第四章 常见问题 —— 怎样在ParaView中将颜色预设默认设为Blue to Red Rainbow?

    问题背景 在ParaView中的颜色预设默认是Cool to Warm,但是在后处理结果中一般用的颜色预设是Blue to Red Rainbow,分别如下所示.那么怎样在ParaView中将颜色预设 ...

  2. Unity Model:模型的默认设置面板

    a.Meshes:网格. ·Scale Factor:缩放系数.unity中物理系统默认游戏世界中第一个单位等于一米.采用不同的软件.不同的单位(建议在三维软件中采用米制单位)创建的模型可以通过该功能 ...

  3. unity导入的模型设置详谈(后面动作)

    此次咱们以2018版本为例,其他版本也差不多,有需要可以下方评论,我告诉大家对应的设置在哪,怎么设置. 咱们先讲Model这一栏 Scene:场景级属性,例如是否导入灯光和照相机,以及使用什么比例因子 ...

  4. linux设置默认启动桌面或是命令行,使用一个命令重置 Linux 桌面为默认设置

    前段时间,我们分享了一篇关于 Resetter 的文章 -- 这是一个有用的软件,可以在几分钟内将 Ubuntu 重置为出厂默认设置.使用 Resetter,任何人都可以轻松地将 Ubuntu 重置为 ...

  5. linux设置壁纸命令,桌面应用|使用一个命令重置 Linux 桌面为默认设置

    前段时间,我们分享了一篇关于 Resetter 的文章 -- 这是一个有用的软件,可以在几分钟内将 Ubuntu 重置为出厂默认设置.使用 Resetter,任何人都可以轻松地将 Ubuntu 重置为 ...

  6. 设置linux默认桌面,使用一个命令重置Linux桌面为默认设置

    前段时间,我们分享了一篇关于 Resetter 的文章 -- 这是一个有用的软件,可以在几分钟内将 Ubuntu 重置为出厂默认设置.使用 Resetter,任何人都可以轻松地将 Ubuntu 重置为 ...

  7. linux恢复设置文件夹,将.bashrc文件恢复到Ubuntu中的默认设置

    以下介绍在Ubuntu系统中将.bashrc文件恢复默认设置的方法,如果你在Ubuntu系统中把.bashrc文件搞坏了就按下面的方法恢复bashrc文件. 背景 我有一个Ubuntu VM,我经常用 ...

  8. 将bios还原为默认设置时无法启动windows

    问题描述: 将bios恢复为默认设置,发现无法正常进入windows系统. 进入安全模式查看错误码,如下图所示: 解决办法: 将sata controller working mode 中的RAID模 ...

  9. VS恢复默认设置的2种方法

    2019独角兽企业重金招聘Python工程师标准>>> 1.快捷步骤 工具 → 导入和导出设置 → 重置所有设置 → 下一步 → 选择"是否保存当前设置",下一步 ...

最新文章

  1. 开源自动化机器学习框架
  2. Spring中@Autowired注解、@Resource注解的区别
  3. 会议论文影响因子多少_中国学术期刊影响因子年报(2020版)发布|中国心血管杂志影响力指数3年连升...
  4. android 活动外的类,Android – 活动外的startActivityForResult?
  5. vim编辑器之按键说明
  6. PS教程第十八课:放大缩小
  7. (回溯Uva524)素数环
  8. 鸿蒙开发版智慧生活,华为发布全新分布式鸿蒙OS,打造全场景智慧生活新体验...
  9. 一文看懂什么是MQ消息队列
  10. php.ini 开启zend,php之ZendFramewor篇(1)application.ini配置说明
  11. 六大开源监测工具 你用过哪个?
  12. 如何下载 MMS开头的视频资源
  13. paypal支付(Java)
  14. 典型概率分布(pdf公式和图示)
  15. w ndows10更改浏览器,Win10系统默认浏览器怎么修改
  16. 【技法操作】UI界面设计,用PS绘制闹钟页面教程
  17. 箱线图(Boxplot)
  18. android 4.4刷机,刷机大师V3.4.4更新:支持Android 4.4
  19. android framework实战车机手机系统开发环境相关问题补充
  20. python基于django的考研报名交流平台

热门文章

  1. Python多进程写Kafka
  2. python制作qq登录界面_Python制作一个仿QQ办公版的图形登录界面
  3. componentWillUnmount父子组件触发先后
  4. Facebook批量取消关注公共主页
  5. 第七章 绘制3D图表和统计地图
  6. Unity5.3+ 在UGUI 上使用 粒子特效
  7. 联想小新Air13高定黑使用初体验
  8. C#界面设计--5--Bitmap.save保存图片时: GDI+ 中发生一般性错误 解决办法
  9. wps怎么把边框加粗_wps怎么把边框线加粗
  10. gazebo中给机器人添加16线激光雷达跑LIO-SAM