UnityEditor扩展-ScriptableObject本地序列化后重启Unity后报The associated script can not be loaded.Please fix any
Posted avi9111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnityEditor扩展-ScriptableObject本地序列化后重启Unity后报The associated script can not be loaded.Please fix any相关的知识,希望对你有一定的参考价值。
做编辑器一些设置序列化存在本地的时候,继承自ScriptableObject的类通过
创建的asset文件.
在重启Unity后查看这个asset发现上面的所有序列化属性丢失,报的错就是
即使,用了 Asset Attribute 还是同样的问题
/// <summary>
/// Data class of Game spreadsheet
/// </summary>
[Serializable]
[CreateAssetMenu(order = 121, menuName = "Game Sheet", fileName = "gamesheet.asset")]
public class GameSheetData : ScriptableObject
同样的问题,估计是Editor文件
在不存在的网站找了一番之后,找到答案
需要本地序列化的ScriptableObject必须拥有自己的同名实体脚本文件.
也就是在上图Scipt选项中能找到的类名.cs文件
Unity貌似会根据序列化的类名去找到这个脚本文件,重新检查脚本的可序列化项,最后才将能序列化的选项重新反序列化出来.
那问题知道了,只要新建一个数据类的同名cs文件,再将代码移过去
测试--
问题解决
注意,只能修复新建的 .asset,而旧的错的文件,好像没什么方法还原
以上是关于UnityEditor扩展-ScriptableObject本地序列化后重启Unity后报The associated script can not be loaded.Please fix any的主要内容,如果未能解决你的问题,请参考以下文章
UnityEditor扩展开发删除missing script
UnityEditor编辑器扩展开发之一些有用的Gizmos扩展方法