2023-11-02 17:16:48 +08:00
|
|
|
![](./Aseets/TagSystem.drawio.png)
|
|
|
|
|
|
|
|
Tag System 主要是基于UE的那一套, 我自己模仿的. 主要就是为了在游戏中使用关键字tag.
|
|
|
|
|
|
|
|
在我的分析下, 一共有两个地方需要注意, 一个是TagSystem的配置功能, 需要在配置的时候配置游戏中有那些Tag, 并且配置Tag对应的描述方便调试, 所以还需要实现一个编辑器功能
|
|
|
|
|
|
|
|
第二方面主要是在游戏中实际运行时, 他刚可以是字符串, 也可以是TagTree的索引, 从而方便我去修改Tag的名字(这里我需要考量, 怎么做才是好的, 因为我如果单纯的以Idnex 作为索引就会不正确, 我觉得需要用一个ID系统进行处理. 比如每新增一个TAG会给予一个ID).
|
|
|
|
|
|
|
|
## Plan
|
|
|
|
|
|
|
|
- TagTree
|
|
|
|
- `TagData root`
|
|
|
|
- GetByID(int id)
|
|
|
|
- TagData
|
|
|
|
- ID 自增且不重复
|
|
|
|
- Name 名字
|
|
|
|
- Des 开发者用的描述信息
|
|
|
|
- `Array[TagData] Child`
|
|
|
|
- `TagData Parent`
|
|
|
|
|
|
|
|
- 编辑器
|
|
|
|
- RowData: ID + String + Des
|
|
|
|
- Add Btn 构造新的 RowData
|
|
|
|
- Remove Btn 删除 RowData
|
|
|
|
- GetEnum()->Array[ID]
|
|
|
|
- GetName(int id) -> String
|
|
|
|
- 保存成什么数据格式?
|
|
|
|
|
|
|
|
## Do
|
2023-11-02 22:19:17 +08:00
|
|
|
- [x] 在我的Godot Tools 项目中成功实现了Tag的编辑器
|
|
|
|
- [ ] 接下来需要实现的是Tag模块的配置数据的IO
|
|
|
|
- [ ] 游戏中的Tag ID配置, 能够方便的直接索引到我的Tag配置文件中去
|
|
|
|
- [ ] 游戏的 Tag 搜索或检索功能
|