1、Unity ScriptableObject生成的asset文件,关闭unity时数据丢失:需要先setdirty
EditorUtility.SetDirty(obj);
AssetDatabase.SaveAssets();
同时,保证ScriptableObject对象是单独在一个文件里,不要写在其他类里面,因为在asset文件通过guidid和fileid来读取页面的显示数据。写在其他类里会造成guidid和fileid为空,从而在关闭unity后原本unity给的临时guidid失效,再次打开会显示脚本丢失的异常。
数据文件需要打 Serializable 的特性,使数据有序列化的能力
里面无法保存非序列化字段的属性,比如unity自带的Dictionary就无法保存到ScriptableObject里面
2、实时碰撞:
IsTrigger勾上和刚体碰撞之外,注意重力喝冻结xyz防止瞎跑