ScriptableObject主要实现对象序列化的保存,因为是Unity自己的序列化,所以比xml,json序列化方便很多,但相对可控性也比较差

1.Editor下写入和读取测试:

using UnityEditor;
using UnityEngine;
using System.Collections;

public class ScriptableTestWindow : EditorWindow
{
    [MenuItem("ScriptableTest/MyTest")]
    public static void CallFunc()
    {
        EditorWindow.GetWindow<ScriptableTestWindow>();
    }

    void OnGUI()
    {
        if (GUILayout.Button("Save Scriptable Data"))
        {
            var myData = ScriptableObject.CreateInstance<MyData>();
            myData.myName = "Dark";
            myData.myLevel = ;
            AssetDatabase.CreateAsset(myData, "Assets/ScriptableTest.asset");
            AssetDatabase.SaveAssets();
        }

        if (GUILayout.Button("Load Scriptable Data"))
        {
            var myData = AssetDatabase.LoadAssetAtPath<MyData>("Assets/ScriptableTest.asset");

            Debug.Log("myName: " + myData.myName);
            Debug.Log("myLevel: " + myData.myLevel);
        }
    }
}

Editor下读取

2.运行时读取:

using UnityEngine;
using System.Collections;

public class RuntimeTest : MonoBehaviour
{
    void Start()
    {
        var myData = Resources.Load<MyData>("ScriptableTest");
        Debug.Log("name " + myData.myName);
        Debug.Log("level " + myData.myLevel);
    }
}

注意,在Unity编辑器中,Resource读到的数据还可以再次修改,也会被保存,要防止误操作。

Unity ScriptableObject的使用的更多相关文章

  1. Unity ScriptableObject自定义属性显示

    1. 继承Editor,重写OnInspectorGUI方法 Editor官方文档 需求 将TestClass中intData属性和stringData按指定格式显示. 实现 定义一个测试类TestC ...

  2. ScriptableObject本地序列化后重启Unity后报The associated script can not be loaded.Please fix any compile errors and assign a valid script的坑

    踩坑 做编辑器一些设置序列化存在本地的时候,继承自ScriptableObject的类通过 创建的asset文件. 在重启Unity后查看这个asset发现上面的所有序列化属性丢失,报的错就是 在不存 ...

  3. unity中ScriptableObject在assetbundle中的加载

    转载请标明出处:http://www.cnblogs.com/zblade/ 以前都是写一些个人的调研博客,从今天开始,也写一些个人在开发中遇到的一些可以分享的趟坑博客,为后续的开发人员提供一些绵薄之 ...

  4. Unity编辑器扩展 Chapter7--使用ScriptableObject持久化存储数据

    Unity编辑器扩展 Chapter7--使用ScriptableObject持久化存储数据 unity unity Editor ScirptableObject  Unity编辑器扩展 Chapt ...

  5. 专业版Unity技巧分享:使用定制资源配置文件 ScriptableObject

    http://unity3d.9tech.cn/news/2014/0116/39639.html 通常,在游戏的开发过程中,最终会建立起一些组件,通过某种形式的配置文件接收一些数据.这些可能是程序级 ...

  6. unity, 由scriptableObject创建.asset

    由继承自scriptableObject的类X创建.asset文件. 假设类X的定义为: [System.Serializable] public class X : ScriptableObject ...

  7. Unity AssetBundle爬坑手记

    这篇文章从AssetBundle的打包,使用,管理以及内存占用各个方面进行了比较全面的分析,对AssetBundle使用过程中的一些坑进行填补指引以及喷!   AssetBundle是Unity推荐的 ...

  8. Unity 最佳实践

    转帖:http://www.glenstevens.ca/unity3d-best-practices/ 另外可以参考:http://devmag.org.za/2012/07/12/50-tips- ...

  9. 玩转Unity资源,对象和序列化(上)

    这是一系列文章中的第二章,覆盖了Unity5的Assets,Resources和资源管理 本文将从Unity编辑器和运行时两个角度出发,主要探讨以下两方面内容:Unity序列化系统内部细节以及Unit ...

随机推荐

  1. PostgreSQL Replication之第十三章 使用PL/Proxy扩展(1)

    在这里添加一个slave,真的有一个很好的可扩展性的策略,这基本上足以满足大多数现代应用程序.使用一台服务器的情况下,许多应用程序就会完美地运行,您可能想添加以副本以给基础设施增加一些安全,但在许多情 ...

  2. JAVA-面向对象-继承

    继承   (关键字extends   ) (关键字 final 表示终态,在父类前加 final 则父类无法被继承,加在方法前则方法不能被重写或者覆盖,加在变量前则变量只能被赋值一次) 1.权限修饰符 ...

  3. fences(桌面整理软件)与eDiary3.3.3下载链接

    fences:  http://www.jb51.net/softs/309746.html http://jingyan.baidu.com/article/e8cdb32b6e958337042b ...

  4. MyEclipse下如何安装svn插件

    方法一:在线安装 1.打开HELP->MyEclipse Configuration    不过多数情况下再myeclipse实现不了   Center.切换到SoftWare标签页. 2.点击 ...

  5. HDU 3037 Saving Beans(Lucas定理模板题)

    Problem Description Although winter is far away, squirrels have to work day and night to save beans. ...

  6. demo02TextView

    main.xml----- /layout/activity_main.xml <RelativeLayout xmlns:android="http://schemas.androi ...

  7. HTML5,超级链接

    <a href="http://h123.date">预算控制系统</a><<br><a href="2.html&quo ...

  8. 【LAMP】在Debian系linux下安装LAMP

    一.安装基本的编译环境 apt-get install build-essential 二.安装MySQL apt-get install mysql-server 三.安装Apache apt-ge ...

  9. [ThinkPHP] 输出、模型的使用

    # # ThinkPHP 3.1.2 输出和模型使用 # 讲师:赵桐正 微博:http://weibo.com/zhaotongzheng   本节课大纲: 一.ThinkPHP 3 的输出      ...

  10. Attribute 与 Property 的区别

    网上的说法是: Property 是面向对象的概念,是Object的一部分. Attribute 是<input type="text"> type就是Attribut ...