Unity脚本执行顺序、序列化与数据存储

Unity脚本执行顺序与数据存储方案


相关博客:
https://blog.youkuaiyun.com/weixin_56166431/article/details/136347569

https://www.cnblogs.com/chenyu007/articles/18325424
https://blog.youkuaiyun.com/qq_42883222/article/details/115981479
https://blog.youkuaiyun.com/qq_55071342/article/details/127307129

脚本执行顺序

Script Execution Order设置

更改脚本执行的优先级
Edit->ProjectSettings->ScripExecutionOrder
拖动位置调整顺序
Default Time值越小,越先执行
缺点:依托于工程配置本身,如果脚本迁移,执行顺序信息就会丢失;

或者 DefaultExecutionOrder属性:
https://blog.youkuaiyun.com/s15100007883/article/details/101207442
https://blog.youkuaiyun.com/weixin_42069404/article/details/140691240

Update与LateUpdate在摄像机跟随中的应用

物体在Update中实现移动;相机跟随 在LateUpdate中实现移动;防止相机抖动。
·
·

序列化与数据存储

序列化:把对象转换为字节序列。用于传递对象、保存对象。
序列化:再次读取Unity时序列化的变量是有值的,不需要再次去赋值

[SerializeField]与public区别

public声明的变量在Inspector面板中是可见的
[SerializeField] 将原本不会被序列化的私有变量和保护变量变成可以被序列化的
在Inspector面板中显示public属性,序列化

已经被序列化(Serialize)的值,会显示在面板上
题外:
[NonSerialized]在面板中隐藏public属性,序列化
[HideInInspector]在面板中隐藏public属性,无序列化功能
https://www.cnblogs.com/CasualAttachment/p/7309327.html

PlayerPrefs\JSON\二进制持久化方案对比

PlayerPrefs

键值对存储(Windows存储在注册表中):PlayerPrefs.SetInt(“…”,1);
键:string;值:int float string
int Player = PlayerPrefs.GetInt(“…”); //读取
PlayerPrefs.DeleteKey(“…”);//删除
PlayerPrefs.Save();//游戏异常退出,调用save存储到硬盘中;游戏正常结束也要

JSON

一种符号表示法,把对象存储为JSON文件,本质是字符串。
键值对存储
键:string;值:int bool float 数组 对象
想要序列化私有变量 需要加上特性[SerializeField]
Json文档编码格式必须是UTF-8
JsonUtility.ToJson(…);//将类对象序列化为Json字符串
JsonUtility.FromJson<类名>(…);//读取文件中的Json字符串,将其转换为类对象

二进制持久化

节约存储空间,提升效率(便于网络通信)
字节数组转int类型:
byte[] bytes = BitConverter.GetBytes(…);
int i = BitConverter.ToInt32(bytes, 0);//从第0位开始

字节数组以指定编码格式转字符串:
byte[] bytes = Encoding.UTF8.GetBytes(“…”);
string s = Encoding.UTF8.GetString(bytes);

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值