如何创建自定义瓦片
选用待继承的瓦片
编写自定义瓦片其实就是通过继承 Unity 原有瓦片, 并添加新数据来创建自己的瓦片, 因此首先需要选用待继承的瓦片, 这个根据项目的需要选择即可.
如果瓦片需要播放动画, 便需要继承动画瓦片, 需要使用预制体就继承预制体瓦片, 需要使用普通瓦片, 随机瓦片, 规则瓦片时都可以继承自规则瓦片.
添加自定义数据
1 | using System; |
上面是我自定义的 Sword Requiem Tile
, 只添加了一个简单的枚举类型数据.
Serializable: 标记此类可以被序列化.
CreateAssetMenu: 标记此脚本可以在资源菜单中直接创建, 创建的默认文件为:
New Sword Requiem Tile.asset
, 菜单项的路径为:Sword Requiem Tile
.SwordRequiemTile: 继承自规则瓦片的自定义瓦片的类型名称.
defaultTerrainType: 自定义数据-默认地形类型.
[注] 这个地方有一个挺大的坑, 可以看到我这里的自定义数据使用的是 '字段' 而非 '属性', 因为使用属性, Inspector 面板中便无法持久保存瓦片属性.
表现在项目中就是, 首先创建枚举, '森林' 的枚举值为 0, '断层' 为 1, 我创建了一个 Sword Requiem Tile, 默认地形类型自动初始化为 '森林', 然后修改瓦片的地形类型为 '断层', 之后绘制地形, 运行游戏, 发现一切正常, 但是一旦关闭 Unity, 再次打开时所有瓦片的自定义数据全部会被重置为 '森林', 即默认值, 想想这个多可怕!
以上情况不知道是不是我自己的失误, 总之这里使用原始的字段不会有任何问题.