unity面试总结(项目篇)

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

项目:
头顶信息,科技树,换装,背包系统

jobsystem为什么不需要锁:
IJobParallelForTransform的原理,规定每个线程管理的index不一致
sdk:
aar不能热更
原生代码:c/c++/object-c/java编写的东西

断线重连逻辑:
重连要注意的主角的现场
当前世界可见的现场数据,包括其他怪物的血条等
监听到重连成功后,框架层直接 清空本地所有动态实体(销毁所有怪物、掉落物、其他玩家)。
拉取:向服务器请求一个“全量状态包”。
还原:就像进副本加载一样,根据包里的数据重新 Instantiate 所有对象。
优点:逻辑最干净,不会出现“服务器说怪物死了,本地由于丢包怪物还活着”的灵异现象。
直接重新创建一遍所有的实体
当前包索引和服务器最新包之间的差量漏调的包重发一遍

背包系统:
UI,跟装备换装相关放lua,跟背包相关的数据,篮子数据放c#,理由是因为c#这边
可能也会有很多地方会用到是否有哪个物品,同时大量的背包数据,在c#使用连续内存配合,密度高,遍历速度块,c#执行速度块,如战斗属性计算

优化p/invoke开销的处理:
1.频繁访问的数据做缓存同步
2.使用 Lua静态绑定(Static Binding),甚至是直接将 C# 里的数据通过 IntPtr 或者 Memory 的方式映射到 Lua 侧读取,彻底压榨性能。”

技能系统:
技能升级相关,基础技能就一个配置,升级只是数值上的动态迭代跟基础技能没关系

头顶信息:
2dUI做法
更新放在lateupdate之后
通过移除画布的方式隐藏
手动计算偏移量,不用layout组件
分区域布局
避免直接使用transform.position,缓存角色坐标
使用判断是否在视野范围内来判断是否更新
在一个job里面同时判断对象是否在视野范围内和把他的3d坐标转成2d坐标,计算这个角色的相关信息
判断是否在视野范围内:使用视口坐标判断,因为用六个面判断是主线程api<

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JustEasyCode

谢谢您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值