Unity官方文档里完全没有提到ReorderableList类,这是因为它不在UnityEngine或UnityEditor的命名空间下,而是在UnityEditorInternal命名空间下,这个命名空间里的东西是没有官方文档支持的
ReorderableList的作用
它的作用,是让一个数组,在Unity的Inspector界面上显示得更好一些
// 写法一 // 注意Wave是个struct, 后面会再提 public Wave[] wave;// 写法二 public List<Wave> wave;
这两种结果,在Inspector上显示效果都是一样的,如下图所示:
这种List布局有以下缺点:
- 无法手动改变这些元素的顺序
- 如果要添加新元素,要改变上面的size,然后填新的值
- 如果要删除其中一个元素,那么不太好做
有了ReorderableList,就可以解决这些问题,用了它以后,Inspector上的数组UI会变成这样,红色区域的东西可以用于拖拽改变元素顺序:
具体的代码实现方法: