游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

教程分享

关注:791

当前位置:游戏蛮牛 技术专区 教程分享

查看: 1106|回复: 8

[系列教程] Unity编辑器入门(一)序列化是干嘛的

[复制链接]  [移动端链接]
排名
5742
昨日变化
44

12

主题

82

帖子

680

积分

Rank: 9Rank: 9Rank: 9

UID
215257
好友
4
蛮牛币
1650
威望
0
注册时间
2017-3-29
在线时间
322 小时
最后登录
2018-10-19
发表于 2018-5-3 19:09:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 m2675 于 2018-5-25 09:05 编辑

5.8更

本来三篇已经完结了,我准备去做点别的东西了,然后偶然间发现了很多新东西,这三篇错了很多,根本不是小改就能改完的啊!!!
于是...就又当回顾一遍吧,不过现在撸这代码都不用查API了,总结的话进步确实很快。

虽然叫从零开始,但是并不是写给新手看的,新手从UnityEditor开始学起的话......

先写属性吧,大多的编辑器教程都是从属性写起的。

首先创建空项目,然后三个文件夹,创建两个脚本。
5N{68QUZ_YC9E8)~_NHN[C7.png


在MonoAttributeTest中敲代码...嗯,我一个字的代码都不给你们复制粘贴的机会,事实证明复制粘贴一点都学不到。

I4EF7(@@1M}%OY5V2GA84JI.png

然后这是在Inspector中的样子。
W%QC)A6H}K}MGN54`GR@2MI.png

看! 两个Public的变量就都没了!

然后讲序列化这个困扰我很久的玩意!


接着另外那个CloudTest脚本也得给它写点东西上去。

L5(LY%1LAB0AT5(D$[0GI.png


然后运行,发现这两兄弟输出都是1对吧。

X)GXZ13UKHDX{{DKP_Q5.png

下面写的东西可能看不懂,但是没事,之后会讲,现在只需要知道它的作用就好了
R$%3V)VI]3M`XD2[KNT%P)A.png

然后CTR+G就可以召唤一个特别丑的东西出来了,点击按钮,发现控制台里输出的两个Public的值都改变了哎!
[K`NFI}]OUI$%LWW48XTU7L.png

OK ,序列化的东西马上讲完了,点击游戏运行。
`RX07}F9YHCV})FCWXARP1F.png

嗯,结果已经出来了,序列化的public变量保存了改变后的值,而未序列化的public没有保存改变后的值。
其实Editor跟Play完全是两个世界啊...前面这句话不知道听过多少遍,但是一直没有理解,现在我也可以说出来这句话放在教程里了。
序列化之后就可以在Inspector面板中显示出来了,并且更改值,回车啪之后,运行时也是修改的那个值。
HideInInspector 只是将public的在Inspector隐藏,但是还是可以序列化。
NonSerialized  是将public的不能序列化,自然也就不能在Inspector显示里。
我们上面的例子就是拿这两个大宝贝做的演示。

SerializeField 然后这个玩意,就是把
private的字段序列化,可以让它显示在Inspector面板中,当然,你还是不能在代码中获取它,毕竟,不同的世界。

上面讲属性的原因只是为了提一下序列化而已,其他的属性就不说了,随便百度就一大堆。

噢  还有类的序列化。

现在创建一个简单的类
WVMO3`8F2H}693R@FHE7~06.png

接着创建一个继承Mono的类



将这个类挂载到物体上,可以看到Inspector上面什么都没有。




然后给这个类加上Serializabe属性使其序列化。


然后它public的字段就出来了!



其实继承Mono的类是会给自己声明为Public的成员默认序列化的,所以有些大牛才会说最好别弄太多继承Mono的类,序列化耗费性能。

附件就是Demo了,没东西,代码也全贴出来了,自己敲就节省一个币嗯。

楼下说需要加一句话,那我就再加一句好了。
序列化 (Serialization)将对象的状态信息转换成文本。
反序列化就是将文本信息转换为对象。




再说一个接口吧,ISerializationCallbackReceiver
里面有两个方法,一个是反序列化之后调用,一个是序列化之前调用。

22W82B}MBJQR3(R7YY@08MX.png
L)LX9ZL82BN3AEUB}QRARXQ.png
2LC}1}][HL2V]I746VI9X(T.png
YJ67$0H1((IC%8)N~B4(8T0.png

新建文本文档.txt

64 Bytes, 下载次数: 4

售价: 1 蛮牛币  [记录]


回复

使用道具 举报

7日久生情
1912/5000
排名
4296
昨日变化
4

0

主题

1335

帖子

1912

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
267381
好友
6
蛮牛币
3205
威望
0
注册时间
2018-2-1
在线时间
257 小时
最后登录
2018-10-6
发表于 2018-5-7 10:16:00 | 显示全部楼层
谢谢分享

回复

使用道具 举报

5熟悉之中
580/1000
排名
5826
昨日变化
33

2

主题

183

帖子

580

积分

Rank: 5Rank: 5

UID
277168
好友
0
蛮牛币
2010
威望
0
注册时间
2018-4-14
在线时间
171 小时
最后登录
2018-10-21
发表于 2018-5-24 08:38:44 | 显示全部楼层
感谢楼主感谢楼主感谢楼主

回复 支持 反对

使用道具 举报

5熟悉之中
882/1000
排名
4656
昨日变化
23

4

主题

265

帖子

882

积分

Rank: 5Rank: 5

UID
268047
好友
0
蛮牛币
2023
威望
0
注册时间
2018-2-7
在线时间
311 小时
最后登录
2018-10-19
发表于 2018-5-24 10:18:23 | 显示全部楼层
谢谢分享!!!
[发帖际遇]: GameMadox 捡了钱没交公 蛮牛币 降了 3 . 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
845/1000
排名
4520
昨日变化
49

5

主题

238

帖子

845

积分

Rank: 5Rank: 5

UID
234410
好友
2
蛮牛币
634
威望
0
注册时间
2017-7-26
在线时间
286 小时
最后登录
2018-10-20
发表于 2018-5-25 08:53:51 | 显示全部楼层
谢谢分享
对于不是新手的人来说 你应该把这句话加上:(序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程)

回复 支持 反对

使用道具 举报

5熟悉之中
897/1000
排名
2600
昨日变化
2

0

主题

169

帖子

897

积分

Rank: 5Rank: 5

UID
224879
好友
1
蛮牛币
1381
威望
0
注册时间
2017-6-2
在线时间
208 小时
最后登录
2018-9-9
发表于 2018-5-25 10:04:54 | 显示全部楼层
新手过来看看,谢谢楼主

回复 支持 反对

使用道具 举报

7日久生情
1904/5000
排名
2184
昨日变化
3

44

主题

754

帖子

1904

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
219600
好友
7
蛮牛币
2635
威望
0
注册时间
2017-4-27
在线时间
502 小时
最后登录
2018-10-19
发表于 2018-6-4 17:54:13 | 显示全部楼层

回复

使用道具 举报

排名
30136
昨日变化
16

0

主题

40

帖子

57

积分

Rank: 2Rank: 2

UID
285561
好友
0
蛮牛币
23
威望
0
注册时间
2018-6-12
在线时间
7 小时
最后登录
2018-6-23
发表于 2018-6-12 23:42:24 | 显示全部楼层
明白了。非常感谢
[发帖际遇]: 一个袋子砸在了 gartional 头上,gartional 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
713/1000
排名
3314
昨日变化
12

8

主题

44

帖子

713

积分

Rank: 5Rank: 5

UID
199915
好友
1
蛮牛币
2316
威望
0
注册时间
2017-1-8
在线时间
243 小时
最后登录
2018-10-19
发表于 2018-9-7 14:20:26 | 显示全部楼层
Get了,很奈斯。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表