ET篇:那些千万不能踩的坑
本篇博客记录ET中所有的坑,希望对大家有帮助
前方高能预警
1.不要在热更层的async语句中使用try Catch finally语法,因为finally语句不会执行(在Try或Catch中执行Return)!
**
2.报错信息:BsonSerializationException: When using DictionaryRepresentation.Document key values must serialize as strings.
原因:Bson默认序列化需要string的key
解决方案:https://stackoverflow.com/questions/28111846/bsonserializationexception-when-serializing-a-dictionarydatetime-t-to-bson**
3.报错信息:Element 'Id' does not match any field or property of class
原因:使用Bson反序列化之前没有对牵扯到的继承关系进行注册
解决方案:对其进行注册
举例:
1 | public class Component |
在反序列化之前执行以下代码即可
1 | //这里的Game是一个包含在程序集的类,利用它来牵引出当前程序集,用以遍历所有类 |
4.Bson不支持反序列化struct!!!
5.Bson不支持反序列化委托!!!
6.在ILRT中使用UNITY_EDITOR将在真机测试时失效!!!
7.对Component的释放逻辑,尽量写在DestroySystem中
有两个原因
-
第一,写在Dispose中,不利于热更新逻辑拆分
-
第二,我们可能会在Dispose中获取Entity进行操作,但此时的Entity因为这些代码,已经不是我们想要的Entity了
1 | public void Recycle(Component obj) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 登峰造极者,殊途亦同归。!
评论