毕业了,换装系统,工作日记,游戏开发,技能系统

从刚开始前两个礼拜培训的时候开始算,就是挑战,培训期间开除了人,然后开始实习,实习第一个项目都是用来决定你是不是能留下来的,应该会与UI相关,我做的是个换装系统,算是渡过了实习期间的考核,这也就意味我可以平稳的渡过实习期,然后试用,要开除我,是等到试用之后了。另外,在这段实习时间,也开除了一个新人和劝退了一个新人。

说起实习期用来考核评判你是否留下来的项目,我可以告诉你组成部分大概是60%的UI,40%的逻辑难度那种的,也就是60%的Lua,40%的C#,不得不说,Lua的确比c#简单太多,特殊体现就可以体现在bug的表现上,c#底层出的问题一般改起来要比lua的难大多,Lua里面代表的大多是UI和一个人的逻辑,而C#要考虑到多人同步,以及调试的周期和难度压根就不是一个等级的。换装系统从大的层面上来讲肯定是很多复杂的东西可以深入的,但是主管肯定也看出我什么垃圾水准,懂得细分范围,就让我实现了骨骼绑定式换装,挂载式和模型变色,再加个符合他们规范的UI看一下,ObjectDisplay照一下,能指定装备绑定骨骼数量,让装备跟着模型动就行了。还有一些什么HOD技术,和捏脸系统对接那种,全部砍掉,就和背包,签到系统对接一下就行了。整个过程中协议的使用是基本,这个千万不能觉得难,不然肯定是不符合实习期的要求的,期间也毫无数学可言,就普普通通。

代码我就不贴了,那是公司的财产,就说一下思路,首先,要换的装备模型是有规范的,里面有一样的骨骼,因此这个模型的smr已经记录了所需要的骨骼的数组信息,而人物模型身上也是有一堆骨骼的,思路就是要替换那个装备模型的时候就把那个装备模型实例化一份到人物模型下面,然后隐藏,在手动创建出一个对象,new一个gameobject把材质用的和原型装备模型的材质一样,再在人物模型上面找到对象的骨骼信息名称一样赋值到新的GO的材质上去就可以了。卸下装备的时候也要把装备原型给unload回收掉。而new出来的那个GO是不删除的,目的是优化细节1。为什么这个原型对象用完的时候不立即删除,因为手机上ab包是直接unload(true)的,删除了对象的材质信息就丢失了。

之后也做过动作系统里面的拔刀收刀,和上下马规则,做这种东西最坑的就是多人同步,特别是上下马的时候有准备上马,上马,准备下马, 下马4中状态,如果不用状态模式的话同步问题就会做得跟坨屎一样,而且一切是服务器状态为准,服务器协议一发下来,就说明服务器那边状态已经是更新完成了的,客户端状态要立马更新,绝对不能延迟。

有注意的优化细节:
1.主管是最讨厌在游戏运行中的时候天天开启内存的,new来new去,所以里面大部分东西都是使用对象池,或者就直接使用一个对象,使用完之后reset从来不会把对象置空
2.订阅事件和取消订阅事件使用小函数,订阅事件之前无论怎样取消一次订阅,还是最坑的就是在执行一个换装操作的时候有没有rootNode也就是游戏人物那个模型有可能还没有加载出来,所以就要先加到缓存列表中,等rootNode加载出来的时候再执行回调。
3.定时器先关再开,开之前先关一次。
4.订阅模型加载事件要判断模型加载是否比订阅事件的时候还要快完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JustEasyCode

谢谢您

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

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

打赏作者

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

抵扣说明:

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

余额充值