感谢韩同学提供的资源

Unity本身提供了float,int,vector3..等类型字段的gui接口,而对于集合类型一般要自己硬写。

官方提供了一个List的自定义GUI,但使用起来非常复杂

UnityEditorInternal.ReorderableList使用:

http://www.cnblogs.com/hont/p/5458021.html

另外有一个开源的ReorderableList实现,Rotorz.ReorderableList

这个用起来非常简单

MonoBehaviour:

public class ReorderableTest : MonoBehaviour
{
public List<string> names = new List<string>();
}

Editor:

[CustomEditor(typeof(ReorderableTest))]
public class ReorderableTestInspector : Editor
{
SerializedProperty mNamesProp; private void OnEnable()
{
mNamesProp = serializedObject.FindProperty("names");
} public override void OnInspectorGUI()
{
serializedObject.Update(); ReorderableListGUI.Title("names");
ReorderableListGUI.ListField(mNamesProp); serializedObject.ApplyModifiedProperties();
}
}

最终效果:

只需把序列化字段名称传给Rotorz.ReorderableList就可以在GUI显示了。

下载地址:

https://bitbucket.org/rotorz/reorderable-list-editor-field-for-unity

Unity中实现List类型的自定义GUI(ReorderableList)的更多相关文章

  1. Unity中的值传递与引用传递

    1. 值类型 值类型变量本身保存了该类型的全部数据,当声明一个值类型的变量时,该变量会被分配到栈(Stack)上. 2. 引用类型 引用类型变量本身保存的是位于堆(Heap)上的该类型的实例的内存地址 ...

  2. 在Unity中使用自定义宏

    最近写AVG工具时有这样的功能需求,AVG的角色可以支持动态的Spine动画,当没有Spine动画时采用默认的立绘图片替代. 这时在脚本中就可以采用自定义的宏来实现: 例如: #if VNSpine ...

  3. 【转】Unity中的协同程序-使用Promise进行封装(一)

    原文:http://gad.qq.com/program/translateview/7170767 译者:陈敬凤(nunu)    审校:王磊(未来的未来) 每个Unity的开发者应该都对协同程序非 ...

  4. Unity Shader入门精要学习笔记 - 第16章 Unity中的渲染优化技术

    转自冯乐乐的 <Unity Shader 入门精要> 移动平台的特点 为了尽可能一处那些隐藏的表面,减少overdraw(即一个像素被绘制多次),PowerVR芯片(通常用于ios设备和某 ...

  5. Unity中使用Attribute

    Attribute是c#的语言特性 msdn说明如下: The Attribute class associates predefined system information or user-def ...

  6. Unity教程之再谈Unity中的优化技术

    这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体   这一步主要是为了针对性能瓶颈中的”顶点 ...

  7. unity中Debug输出控制

    1 需求: (1)选择在界面.console中输出,并且能够设置保存到文档 (2)控制debug是否输出,可以在debug模式下输出,release模式下不输出 2 参考: 谢谢雨松同学的博客:htt ...

  8. 【Unity技巧】Unity中的优化技术

    http://blog.csdn.net/candycat1992/article/details/42127811 写在前面 这一篇是在Digital Tutors的一个系列教程的基础上总结扩展而得 ...

  9. Unity中的万能对象池

    本文为博主原创文章,欢迎转载.请保留博主链接http://blog.csdn.net/andrewfan Unity编程标准导引-3.4 Unity中的万能对象池 本节通过一个简单的射击子弹的示例来介 ...

随机推荐

  1. java collections读书笔记(9)collection框架总览(2)

    框架算法: 1)collection接口 add()  Adds an element to the collection.addAll()  Adds a collection of element ...

  2. PostgreSQL Replication之第十一章 使用Skytools(2)

    11.2 剖析 skytools Skytools 不只是一个单一的脚本,而是一个提供各种不同服务的工具的集合.一旦我们安装了Skytools,更详细地查一下这些组件的细节是有意义的: • londi ...

  3. 成员变量&&局部变量

    一.相同点:1.都遵循变量的声明格式:(修饰符) 数据类型  变量名=初始化值 2.都有各自的作用域 二.不同点:1.声明的位置不同      成员变量:声明在类内,方法外. 局部变量:声明在方法内. ...

  4. C++Builder加载Png图片

    有两种方法,一是把该对象的Transparent 的属性设为true,图片的白色代表即为父界面的颜色 而是在头文件加上#include <pngimage.hpp> Image1-> ...

  5. Eclipse下配置C++开发环境(转)

    1. 首先确保你的电脑上已经安装了Java,如果没有,或者不确定,请到官网上下载并安装,网址如下(这一步我就不详述了): http://www.java.com/zh_CN/   2. 到官网上下载并 ...

  6. Java之Structs框架初探

    今天是小白第一次自己的接触Struts框架,因为网上的资料都是从Structs2开始,跟Structs1完全不同,因此,小白直接跳过1学习版本2的搭建,废话不多说,直接开始. 首先要搭建框架,就肯定要 ...

  7. Appium的理念

    1.Appium的架构:C/S模式 Appium的核心是暴漏REST API的WebServer,appium接收来自客户端的连接请求,监听由客户端发起的命令,在移动设备上执行这些命令,这些命令的执行 ...

  8. 常见http代码错误原因及处理

    常见的HTTP错误可以分为以下四大类.每一大类又细分为很多类小错误.当您打不开网站或者打开网站报错时首先检查您输入的网站是否有误,检查网络是否有问题或者虚拟主机的DNS是否可以解析.确定没有问题时再看 ...

  9. 插入多行数据和类似 select union 方法

    Cite:http://blog.csdn.net/downmoon/article/details/5936706 [ruby] view plaincopyprint? Create table ...

  10. 1029 C语言文法

    program    -> external_declaration | program external_declaration <程序> ->  <外部声明> ...