因此,我正在为Unity中的建筑物使用此六角形网格系统。我创建了一个二维布尔数组来设置建筑物将占据网格的哪个区域。我已经制作了一个自定义编辑器,因此可以对其进行编辑。 在我将其设置为预制件之前,一切都可以完美工作。然后,设置该区域的网格将重置。有什么办法可以解决这个问题?
P。 S. Weird这是当我在同一脚本中设置滑块时。 Unity记住滑块的数据没有问题。但是在预制中对其进行更改会导致其重置
我正在使用Unity版本2018.3.0f2
答案 0 :(得分:0)
自定义编辑器脚本习惯于在播放,实例化或构建时丢失其所有数据。由您决定要在编辑时保存数据,并在查看时将其反序列化回界面。 在声明中将自定义[system.serializable]类与[serializeField]一起使用要容易得多。由建筑物类列表组成的buildingRows类列表在您的情况下会很好。它看起来并不像您想要的那样漂亮。
一个灵巧的解决方法是在检查器中使用[mutiline]字符串文本输入字段。 例如,建筑物可以是字符“ o”或“ x”。当在换行符上分割时,这实际上是2D字符数组。 像这样:
o o o o x o o o o o
o x o o x x o o o x
o o o o o x o x x x
o o o x o o o o o o
o o o x o o o x o o
o o o x o o o x o o
o o o x o o o x o o
x x x x o o o x o o
x x x o o o o x o o
o o o o o o o o o o