学习Unity Editor之ScriptableObject

SciptableObject

根据Unity官方文档的描述,ScriptableOjbect是当我们想创建一个不需要绑在特定game objects上的对象时所使用的类。

ScriptableObject可以当做数据容器来使用,它不需要绑定在场景的特定GameObject上。我们可以将ScriptableOjbects当做assets保存在我们的项目中。

通常来说,ScriptableOjbects主要用来保存数据,但同时我们也可以用它来在场景中生成序列化对象

using UnityEngine;
using System.Collections;

public class MyScriptableOjbectClass : ScriptableObject
{
    public string objectName = "ScriptableObject";
    public bool isColor;
    [MenuItem("MyTool/tool")]
    static void tool()
    {
        Debug.Log("Tool is running");
    }
}

通过上述代码将在Editor中新增一项菜单,通过点击tool菜单项,我们就可以调用tool函数,执行相关运算。

脚本序列化

原文:https://docs.unity3d.com/Manual/script-Serialization.html

序列化可以自动地将数据结构或者对象状态转化为一种Unity引擎可以保存并再创造的格式。Unity中一些功能也使用了序列化,比如保存和载入,inspector窗口,prefabs. 

由此可见,数据的组织方式将影响Unity序列化这些数据,从而对项目的性能造成很大影响。

理解热重载(hot reloading)

Hot reloading

热重载是一种当编辑器打开的情况下,我们创建或者修改脚本,脚本逻辑可以马上被应用在项目中,而不需要为了让改动生效重启游戏或者Editor。

当我们改动并保存一个脚本时,Unity引擎热重载所有当前已经被载入的脚本数据。它首先在所有的载入脚本中保存可序列化的变量,然后在载入脚本之后,它将恢复这些变量。而所有不能够被序列化的数据将在热更新之后丢失。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值