[Unity3D]编辑器扩展之数组或List显示
效果如下:
源码如下:
using System.Collections.Generic;
using UnityEditor;
using UnityEngine; namespace XM.Editor
{
public class AssetBundleCreator : EditorWindow
{
[MenuItem("Tools/Build Asset Bundle")]
public static void BuildAssetBundle()
{
var win = GetWindow<AssetBundleCreator>("Build Asset Bundle");
win.Show();
} [SerializeField]//必须要加
protected List<UnityEngine.Object> _assetLst = new List<UnityEngine.Object>(); //序列化对象
protected SerializedObject _serializedObject; //序列化属性
protected SerializedProperty _assetLstProperty; protected void OnEnable()
{
//使用当前类初始化
_serializedObject = new SerializedObject(this);
//获取当前类中可序列话的属性
_assetLstProperty = _serializedObject.FindProperty("_assetLst");
} protected void OnGUI()
{
//更新
_serializedObject.Update(); //开始检查是否有修改
EditorGUI.BeginChangeCheck(); //显示属性
//第二个参数必须为true,否则无法显示子节点即List内容
EditorGUILayout.PropertyField(_assetLstProperty, true); //结束检查是否有修改
if (EditorGUI.EndChangeCheck())
{//提交修改
_serializedObject.ApplyModifiedProperties();
}
}
}
}
上述原文地址http://blog.csdn.net/u012741077/article/details/54884623
------------------------------------修改-------------------------------------------------
需要在你修改面板的脚本里面定义变量(目前只实验成功了List),并要序列化,然后在对应的编辑器文件里面序列化这个脚本
SerializedObject serializedObject = new UnityEditor.SerializedObject(itemCollider);
SerializedProperty serializedPropertyMyInt = serializedObject.FindProperty("HideObjForOnEnable");
if (itemCollider.IsOnEnableHideObj = EditorGUILayout.Toggle(new GUIContent("Is On Disable Hide Obj", "是否添加激活隐藏物体事件"), itemCollider.IsOnEnableHideObj))
{
//开始检查是否有修改
EditorGUI.BeginChangeCheck(); //显示属性
//第二个参数必须为true,否则无法显示子节点即List内容
EditorGUILayout.PropertyField(serializedPropertyMyInt, new GUIContent("Hide Obj For On Disable", "隐藏物体"), true); //结束检查是否有修改
if (EditorGUI.EndChangeCheck())
{//提交修改
serializedObject.ApplyModifiedProperties();
}
效果如下:

经实验,直接写在OnInspectorGUI()方法内也是没问题的
[Unity3D]编辑器扩展之数组或List显示的更多相关文章
- Unity3D编辑器扩展(六)——模态窗口
前面我们已经写了5篇关于编辑器的,这是第六篇,也是最后一篇: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)—— ...
- Unity3D编辑器扩展(五)——常用特性(Attribute)以及Selection类
前面写了四篇关于编辑器的: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)——使用GUI绘制窗口 Unity3D ...
- Unity3D编辑器扩展(四)——扩展自己的组件
前面已经写了三篇: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)——使用GUI绘制窗口 今天写第四篇,扩展自己 ...
- unity3D编辑器扩展
编辑器扩展只是在编辑项目中运行,发布出来是不会运行的. 固定创建一个文件夹Editor:所有的资源或者代码都不会被打包进去. 01.使用MenuItem添加菜单栏按钮 脚本不需要作为组件存在,可以不用 ...
- Unity3d编辑器扩展学习笔记
编辑器扩展 1.添加菜单栏:把特性应用于静态方法 参数1:菜单名的空格后面是定义快捷键(单符号得用"_"开头,组合键%=Ctrl,#=Shift,&=Alt) 参数2:通过 ...
- Unity3D编辑器扩展(一)——定义自己的菜单按钮
Unity3D 引擎的编辑器拥有很强的扩展性,用的好可以帮我们省很多事情.在这里记录下如何去扩展 Unity3D 的编辑器,定制属于我们自己的开发环境. 本篇主要讲解在 Unity3D 引擎的各个窗口 ...
- Unity3D编辑器扩展(三)——使用GUI绘制窗口
前两篇分别讲解了创建菜单https://www.cnblogs.com/xiaoyulong/p/10115053.html和创建窗口https://www.cnblogs.com/xiaoyulon ...
- Unity3D编辑器扩展(二)——定义自己的窗口
上一篇我们讲了如何定义菜单按钮 https://www.cnblogs.com/xiaoyulong/p/10115053.html 这一篇我们讲如何定义自己的窗口. 定义窗口我们需要继承 Edito ...
- Unity 3D编辑器扩展介绍、教程(二) —— 创建窗口
Unity编辑器扩展教程(二) 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Brief Introd ...
随机推荐
- python爬虫-User-Agent的伪造
某些网站会识别python爬虫程序并阻断,通过构造User_Agent可以抵抗某些反爬虫机制 用fake-useragent这个库就能很好的实现 pycharm中安装步骤 产生随机的User-Agen ...
- 使用 GoLand 启动 运行 Go 项目
来源:https://my.oschina.net/u/3744526/blog/3085468 在使用本博客经验之前 需配置好 GOPATH 跟 GOROOT 创建好本地工作路径之后,使用 GoLa ...
- 不论是 Basic Auth 还是 Digest Auth,都会有 Authorization 字段
GET /dir/index.html HTTP/1.0 Host: localhost Authorization: Digest username="Mufasa", real ...
- Windows SDK 的 ctype.h 里有一些有用的函数,例如字符串的大小写转换
#define _tolower(c) ((c) - 'A' + 'a') #define _toupper(c) ((c) - 'a' + 'A')
- js之 DOM与BOM
JavaScript HTML DOM (文档对象模型)(Document Object Model) 什么是DOM? DOM是W3C标准. DOM定义了访问文档的标准: “W3C文档对象模型(DOM ...
- 深入研究Clang(十) Clang Static Analyzer简介
Clang Static Analyzer 官网地址:http://clang-analyzer.llvm.org/ Clang Static Analyer是一个源码分析工具,它可以发现C.C++和 ...
- CSS开发技巧(二):表格合并边框后的单元格宽度计算
前言: 分离边框模型和合并边框模型是表格的两种模型,它通过以下属性确定: border-collapse:separate(默认值) | collapse | inherit 当采用分离边框模型时,表 ...
- Linux监听磁盘使用情况
前阵子服务器磁盘写满了,导致项目出了很多奇怪的问题,比如文件上传不了(这个很好理解),还有登录时验证码无法加载(现在依旧不知道原因,项目的验证码图片是只在内存中生成的BufferedImage对象,不 ...
- windows下git commit使用gvim编辑器
安装gvim 下载安装包:ftp://ftp.vim.org/pub/vim/pc/gvim80-586.exe 安装后将安装路径添加到环境变量Path中 设置编码支持中文 在安装路径下的_vimrc ...
- 【阅读笔记】Ranking Relevance in Yahoo Search (四 / 完结篇)—— recency-sensitive ranking
7. RECENCY-SENSITIVE RANKING 作用: 为recency-sensitive的query提高排序质量: 对于这类query,用户不仅要相关的还需要最新的信息: 方法:rece ...