Unity Serializable 序列化是干嘛的?场景文件是用啥写的?

他会让 你的类显示在 inspector 面板上
举个例子
你写了一个类

public class ScriptCopy
{
    public string nameA1;
    public string nameA2;
    public string nameA3;
}

另一个类引用了他

public class Test : MonoBehaviour
{
    public string MyName;
    public ScriptCopy scriptCopy;
}

把 Test 拖到gameobject上 这个时候 inspector 面板上显示的是这样的
在这里插入图片描述
没有scriptCopy对象

这时候加工一下 ScriptCopy类

using System;
[Serializable]
public class ScriptCopy
{
    public string nameA1;
    public string nameA2;
    public string nameA3;
    private string nameA4;
}

然后就变成这样了
在这里插入图片描述
嘿 神不神奇?
但是nameA4是不显示的
希望他也显示 咋办?

using System;
using UnityEngine;

[Serializable]
public class ScriptCopy
{
    public string nameA1;
    public string nameA2;
    public string nameA3;

    [SerializeField]
    private string nameA4;
}

这样就可以啦
在这里插入图片描述
记住
加Serializable要using System
加SerializeField 要using UnityEngine

你写上的那些内容 不会消失 你有没有想过 他们都存哪里了?
打开这个场景的文件 文本打开就可以看到这个
在这里插入图片描述
所以都存场景文件里了

如果存的是一个gameobject呢?
在这里插入图片描述
而这个gameobject 的定义是这样的
在这里插入图片描述
场景文件用的是 YAML 格式

—是代表一个单独文件的意思 具体看下面这个
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值