【发布时间】:2021-04-14 05:48:04
【问题描述】:
如何在 Unity 编辑器的检查器中序列化数组/列表/字典,以使设计人员无需了解底层枚举索引。
如;
public enum foobar { foo, bar }
[SerializeField] List<string> optionsForTheDesigner = new List< string>();
在检查器中,这将显示为(最好使用 foo 和 bar 作为枚举下拉菜单);
然后在代码中访问为;
fooValueFromTheDesigner = optionsForTheDesigner[foobar.foo];
barValueFromTheDesigner = optionsForTheDesigner[foobar.bar];
而不是检查员展示;
如果它在 ScriptableObject 中有所不同。
编辑:为清楚起见,将“编辑器”更改为“检查器”。将文本示例更改为图片。
Edit2:我最终找到了类似于 rustyBucketBay 的答案的东西,但使用的是枚举而不是 int。这显示在编辑器中,如下所示。如果需要,我可以在运行时将其转换为枚举索引数组/列表,或者在构建之前使用辅助函数。
【问题讨论】: