IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity Layer预设 默认设置Layer -> 正文阅读

[游戏开发]Unity Layer预设 默认设置Layer

直接看代码,编译后通过改写 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-PostProcessing
      9-RealityScene
      10-bgCamera
      11-maskCamera
      12-arCamera
      13-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();
    }
}

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:22:13  更:2021-07-26 12:22:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年3日历 -2024/3/29 10:29:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码