开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

教程分享

关注:762

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

查看: 406|回复: 5

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

[复制链接]  [移动端链接]
排名
10084
昨日变化
3

12

主题

54

帖子

343

积分

Rank: 9Rank: 9Rank: 9

UID
215257
好友
2
蛮牛币
1284
威望
0
注册时间
2017-3-29
在线时间
169 小时
最后登录
2018-5-26

迈向小康

发表于 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 蛮牛币  [记录]


回复

使用道具 举报

6蛮牛粉丝
1440/1500
排名
6139
昨日变化
44

0

主题

1069

帖子

1440

积分

Rank: 6Rank: 6Rank: 6

UID
267381
好友
3
蛮牛币
2350
威望
0
注册时间
2018-2-1
在线时间
179 小时
最后登录
2018-5-27

迈向小康

发表于 2018-5-7 10:16:00 | 显示全部楼层
谢谢分享

回复

使用道具 举报

3偶尔光临
220/300
排名
14486
昨日变化
291

1

主题

128

帖子

220

积分

Rank: 3Rank: 3Rank: 3

UID
277168
好友
0
蛮牛币
346
威望
0
注册时间
2018-4-14
在线时间
45 小时
最后登录
2018-5-27
发表于 4 天前 | 显示全部楼层
感谢楼主感谢楼主感谢楼主

回复 支持 反对

使用道具 举报

4四处流浪
385/500
排名
9488
昨日变化

1

主题

133

帖子

385

积分

Rank: 4

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

回复

使用道具 举报

4四处流浪
419/500
排名
7042
昨日变化
1

3

主题

120

帖子

419

积分

Rank: 4

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

回复 支持 反对

使用道具 举报

5熟悉之中
742/1000
排名
3189
昨日变化
2

0

主题

165

帖子

742

积分

Rank: 5Rank: 5

UID
224879
好友
1
蛮牛币
1020
威望
0
注册时间
2017-6-2
在线时间
173 小时
最后登录
2018-5-26
发表于 3 天前 | 显示全部楼层
新手过来看看,谢谢楼主

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条

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