ScriptableObject】的更多相关文章

踩坑 做编辑器一些设置序列化存在本地的时候,继承自ScriptableObject的类通过 创建的asset文件. 在重启Unity后查看这个asset发现上面的所有序列化属性丢失,报的错就是 在不存在的网站找了一番之后,找到答案 需要本地序列化的ScriptableObject必须拥有自己的同名实体脚本文件. 也就是在上图Scipt选项中能找到的类名.cs文件 Unity貌似会根据序列化的类名去找到这个脚本文件,重新检查脚本的可序列化项,最后才将能序列化的选项重新反序列化出来. 那问题知道了,…
由继承自scriptableObject的类X创建.asset文件. 假设类X的定义为: [System.Serializable] public class X : ScriptableObject {    public float m_a;} 方法一:写代码创建. #if UNITY_EDITOR         string path = "Assets/Resources/x.asset";         X scriptableObj = ScriptableObject…
ScriptableObject ScriptableObject是一个类,它允许你存储大量用于共享的数据独立脚本实例,不要迷惑这个类同样可以叫做 SerializableObject,可以理解成是一个Unity串行化工具.这是一个编辑器类并且你可以在Inspector面板中编辑数据.例如:如果你有一个存储了一百万数据的 int[],这个数组占用4MB内存,放在Prefab上,那么当你每次实例化Prefab,你都会得到这个数组的一个副本.如果你实例化10个这个Prefab,那就会占用40MB内存…
ScriptableObject主要实现对象序列化的保存,因为是Unity自己的序列化,所以比xml,json序列化方便很多,但相对可控性也比较差 1.Editor下写入和读取测试: using UnityEditor; using UnityEngine; using System.Collections; public class ScriptableTestWindow : EditorWindow { [MenuItem("ScriptableTest/MyTest")] pu…
using UnityEngine; [System.Serializable] public class Weapon { //[SerializeField] public string weaponName; //[SerializeField] public int damage; public Weapon(string name, int dmg) { weaponName = name; damage = dmg; } } 我们使用 ScriptableObject 来当做数据库…
不同与C#提供的Serializable序列化功能,ScriptableObject是Unity3D提供的一个数据存储类,我们接下来学习一下这个类的功能. 官方文档 http://docs.unity3d.com/Manual/class-ScriptableObject.html http://docs.unity3d.com/ScriptReference/ScriptableObject.html 使用情景 在Unity3D中,我们记录游戏的配置数据可以使用文件文件(XML.JSON等格式…
自定义ScriptableObject属性显示的三种方式 1. 继承Editor,重写OnInspectorGUI方法 Editor官方文档 需求 将TestClass中intData属性和stringData按指定格式显示. 实现 定义一个测试类TestClass,一个可序列化类DataClass [CreateAssetMenu] public class TestClass : ScriptableObject { [Range(, )] public int intData; publi…
转载请标明出处:http://www.cnblogs.com/zblade/ 以前都是写一些个人的调研博客,从今天开始,也写一些个人在开发中遇到的一些可以分享的趟坑博客,为后续的开发人员提供一些绵薄之力的帮助吧. 好的,今天就分享一个困扰了一个晚上的assetbundle中如何加载ScriptableObject的坑. 一.ScriptableObject在assetbundle中的使用 作为可以显示配置的数据格式,ScriptableObject类型数据目前已经大量的使用在项目中,具体使用方法…
ScriptableObject是一个用于生成单独Asset的结构.同时,它也能被称为是Unity中用于处理序列化的结构. 可以作为我们存储资源数据的有效方案.同时此资源可以作为我们AB包的有效资源! ScriptableObject的特点: 不需要绑定到物体对象. 存放于编辑器或者作为一种资源存储. 操作方便,可视化动态修改. 读取数据方便,ScriptableObject已经是可序列化的数据. 可以在项目之间很好的复用而不会丢失数据. 注意的点 制作ScriptableObject,为了制作…
.asset一般用来存储一些配置,比如SDK初始化的相关参数. using System.Collections.Generic; using UnityEngine; namespace XXX { [CreateAssetMenu(fileName="xxx", menuName="xxx")] public class CommonConfig : ScriptableObject { [HideInInspector] public List<stri…