博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】Unity中HideInInspector和SerializeField一起使用
阅读量:1985 次
发布时间:2019-04-27

本文共 771 字,大约阅读时间需要 2 分钟。

首先,Unity会自动为Public变量做序列化,序列化的意思是说再次读取Unity时序列化的变量是有值的,不需要你再次去赋值,因为它已经被保存下来。

然后是,什么样的值会被显示在面板上?

已经被序列化,但是没有用HideInInspector标记的值。


[HideInInspector]表示将原本显示在面板上的序列化值隐藏起来。


[SerializeField]表示将原本不会被序列化的私有变量和保护变量可以序列化,这么他们在下次读取时,就是你上次赋值的值。


1如果a是公有的序列化变量。

1.1如果你想要在面板中看到a,那么用:

public int a;


1.2如果你不想在面板中看到a,那么用:

[HideInInspector]

public int a;

// 这样a可以在程序中被代码赋值,但不会在面板中看到并手动设置赋值。


2 如果a是私有的序列化变量,你想在面板中读取并保存,那么用:

[SerializeField]

private int a;


3.如果a是私有的序列化变量,你想在面板中读取,但是不保存,那么用:

[HideInInspector][SerializedField]

private int a;

public int b{

    get{return a;}

}

然后在Editor中显示,

EditorGUILayout.LabelField("value",game.B.ToString());


4如果a是私有序列化变量,你不想在面板中做任何操作(不想看到,也不想写),但是想要在程序中给它赋值,那么用。

[HideInInspector][SerializedField]

private int a;

public int b{

    get{return a;}

    set{a = value;}

}

转载地址:http://ywkvf.baihongyu.com/

你可能感兴趣的文章
Spring Boot整合Servlet使用
查看>>
SpringBoot 文件上传
查看>>
我居然在Github上找到了一个完整的停车系统(附源码地址)
查看>>
大厂经典面试题:Redis为什么这么快?
查看>>
精通Spring?请吃我一狗腿!
查看>>
培训班老师说可以用这个干掉一大批面试者
查看>>
花了 500块大洋 ,买来的677页Java性能调优笔记,感觉4年Java性能调优都白学了
查看>>
靠这本,在某宝花了399大洋的宝典,熬夜七天,吊打面试官,终进大厂
查看>>
阿里四面,居然栽在一道排序算法上
查看>>
【Java编码规范】《阿里巴巴Java开发手册(正式版)》发布!
查看>>
如何在二三线城市月薪过万(一)看完这篇后端简历优化,包你面试不断
查看>>
源码不止Spring!发布GitHub一天,获赞7.5K 阿里Java程序员源码进修指南我粉了
查看>>
阿里P8大神教你十分钟构建好SpringBoot + SSM框架 成功晋升
查看>>
Linux运维-搭建高可用Redis缓存
查看>>
膜拜!阿里内部都在强推的K8S(kubernetes)学习指南,不能再详细了
查看>>
Java集合:TreeSet、TreeMap、HashSet、HashMap、HashTable、ArrayList、LinkedList、Vector集合的全部比较
查看>>
Linux 常用命令
查看>>
Android之Handler机制篇
查看>>
Android之网络协议篇
查看>>
Android之RecyclerView篇
查看>>