我的Unity项目遇到的坑

1.客户端月卡显示问题 由于沟通问题导致appstore的商品id被删了,各方确认苹果的商品id变换必须重审,想增加id发现客户端id被写死了。最终只能减少一个id换成月卡了。所以客户端要动态。

2.NGUI移动效率低下问题,动态移动的Sprite会导致每帧的NGUI排序 效率很低,所以主城的玩家头上的icon和text都必须用 render和3dtext来做。所以NGUI只适合做静态UI.

3.IOS资源解压路径问题,由于前期项目忙的问题。打算审核的时候把资源存在temp目录,上线后存在document目录,结果变成了都存temp目录了。导致玩家每隔几天就得重新下载资源,因为temp和cache目录系统都会自动清空。所以不得不临时加急更新版本。

4 关于策划上的OKMSgBox和TipsBox的区别,之前问有些策划他们觉得好像没什么区别,最近操作的感受是 频繁的操作提示和不重要的建议tips 方便玩家操作,不频繁的 并且比较重要的提示一定要msgbox提示,确保玩家看到内容。

5关于文件更新,文件更新经常遇到缓存问题更新不下来,比如配置表bundinfo.tx  很多CDN会优化 如果名字一样的情况下  第二次不会重新下载 会读缓存,所以最好是每次文件改变后 都要改后缀名,_1 等,文件名CRC后缀校验会变等。另外测试更新的时候 时间上要求比较蛋疼,名字相同的资源 刚放在服务器上 下不下来,等一段时间也许就下下来了。

6关于Android代码dll更新,首先电脑连接Android手机看资源管理器的时候  看Android的资源是很有延迟的,一般以手机或者助手来看目录为准。另外就是DLl更新要重启,还有就是apk包内的dll和更新下载的dll  在java层面要判断好 以哪个为准,比如一般以下载的为准,但是遇到新装apk后  就要把下载的删掉 以本地为准了。

7关于Android代码热更新的坑:由于我们采用的是将代码序列化的,所以在大版本更新 只想更新dll的情况下,必须保证代码序列化的各public成员变量不变,也就是:

      a.原来的代码不能增加public变量,也不能把public变量属性改变 ,public 变量用函数去获取。

      b.若改变的变量特别多,就建议把原代码删掉增加一个_1的代码,比如test.cs 变成test_1.cs。但是这种情况要保证代码的meta文件的guid不变,也就是直接把原代码的meta改成_1.meta。因为guid变了后  会被认为是全新的东西,那么所有bundle相关该代码的资源都会有变化,会导致更新文件过多。另外还要保证改成_1.CS的原代码和对象没有被直接public赋值过。不然引用对象也有可能导致资源变化。

      c.代码修改完毕后 一定要重打所有与这些代码相关的资源。

8 客户端计算服务器时间变量类型遇到的坑:服务器的时间 客户端最初用了 Uint64类型来计算的,然后发现计算错误 改为了ulong  发现也错误,其实这2者之间差不多,主要还是因为计算产生了负数,导致UINT64的负数变成了很大的正数  而出错了。所以其实客户端正常逻辑 用int64或long应该就是足够了的。单纯从数值区间来说int64和long是一样的。

9 关于客户端的itemDB,客户端经常需要获取总物品里边的部分分类和排序处理,如果每次获取或者排序的时候都new一个新对象来返回,频繁时 会导致客户端内存在短时间内爆满。所以一般在获取的接口地方定义该类型变量,每次获取或者排序的时候 clear掉 然后再计算返回,这样才不会导致内存冗余。

10 关于bundle模式下读文件有问题 pc模式文件正确。装备模型在pc里边正常 在手机上加载不进来是因为资源的图片和模型或者材质同名,bundle里边不会区分后缀名的,所以加载了错误的文件而

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值