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编辑器扩展-表格功能

UnityEditor扩展开发删除missing script

UnityEditor编辑器扩展开发之一些有用的Gizmos扩展方法

UnityEditor扩展-右键拷贝资源路径到系统剪贴板

UnityEditor编辑器扩展开发-自定义Shader入门

UnityEditor编辑器扩展开发-自定义Shader入门