这是第155篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com

UWA QQ群2:793972859(原群已满员)

本期目录:

  • 手游推送方案

  • Unity UI特效和前端的沟通问题

  • 低端机上是否要开启多线程渲染

  • RenderTexture在手机端内存变大

  • 自己实现Text描边引起DrawCall增加问题

Android

Q:例如《率土之滨》和《部落冲突》这种游戏,如果你的主城被别人打了,手机上会收到推送通知说有人在打你。有个问题就是游戏已经杀死掉了,为什么还能收到这个通知?这种是实时的通知,不是定时那种,请问下这种要怎么做?

A1:这种准确推送时间客户端是计算不出来的,所以还是得依靠服务器。Android这块以前用过极光推送,还行。iOS有提供服务器推送方案。大概原理就是,我们的服务器通知(苹果的服务器或者极光的服务器)再转向玩家进行推送。

感谢雨松MOMO@UWA问答社区提供了回答

A2:腾讯的信鸽也可以,推送分服务器推送和本地推送。一般这种需求我们需要本地推送,iOS系统本身支持这种推送。安卓并没有对应的API,需要自己启动Server,并与某系统进程绑定,才能保证进程不被杀掉,但是现在各大厂商都自己制定系统,很难做到这一步,也有部分厂商的App在系统白名单里,后台进程不会被杀掉。

感谢郑骁@UWA问答社区提供了回答欢迎大家转至社区交流:

https://answer.uwa4d.com/question/5cac455026ca1f200dab8f16

资源管理

Q:我们的游戏现在有很多UI特效给特效去用Animation和粒子做,但是有个问题是,他们做很难注意性能问题,而且我一旦改变一些属性,又得重新让它K帧,这样做下来交流成本很高,不知道有没有什么好的解决方案?

A1:我是这样做的,就是美术做的特效Prefab程序不直接用,而是提供一个工具供他们导出生成一个新的Prefab。

这样的好处就是导出的时候可以进行检查,比如检查贴图数量、粒子数量、动画等等,我们可以提前定好UI粒子特效的标准,导出的时候发现资源不符合规范或者有问题,就给他们提示错误,Prefab不予以导出。这样美术就无法上传SVN程序,就不会更新到有问题或者有效率问题的特效。

其实这个思路不仅特效可以用,UI界面、角色、场景等等,我都是这么做的,Prefab自动生成的同时还可以做一些额外的逻辑。

感谢雨松MOMO@UWA问答社区提供了回答

A2:我和楼上的做法类似,不能用导入器强制规范的资源,每天凌晨打包机启动一个资源扫描动作。把不符合规范的扫出来生成报告。

感谢王亮@UWA问答社区提供了回答

A3:我的思路:

自己编写Timeline编辑器(Unity,Unreal官方也可),在编辑器中将美术相关的操作范围规范好,例如播放单粒子特效时的个数及模型、动画、材质等资源使用范围,最终在生成特效数据时,再进行资源和数据检查以及资源整理,避免资源冗余及不规范。

优势:

1、资源和数据剥离,各资源间没有耦合,可快速修改和调整;

2、数据在编辑模式下可共用、也方便联合制作,可快速处理冲突;

3、模板化特效,大大提高开发效率。

两点需要注意:

1、FBX资源冗余,Unity默认关联模型、动画资源为FBX路径。我采取的策略是,将使用到的资源,从FBX中提取,制作成Asset文件(Unity本身也是这么做的,只不过帮他提前做了而已,也会提高打包速度),将Timeline上的资源依赖换成新生成的资源。

2、编辑器本身尽量做好回放功能(尤其是粒子)。

感谢郑骁@UWA问答社区提供了回答欢迎大家转至社区交流:

https://answer.uwa4d.com/question/5cb46c723ded097520c24ced

渲染

Q:多线程渲染到底是开还是不开呢?在低端机,比如红米Note2开多线程渲染有帮助吗?还是说直接关闭比较好?

A1:题主不妨在红米Note2上具体测试下,看下开关的之后的性能差异。了解到现在挺多大型的ARPG都开启了多线程渲染。

感谢张锐@UWA问答社区提供了回答

A2:对于目前中国市场的手游,都建议开启多线程渲染功能,不仅可以大幅降低主线程上渲染模块的压力,同时还可以极大降低纹理、Mesh和Shader等资源加载的耗时。

当然,没有一种方法是一本万利的,也有它一定的限制和问题,具体我们之前碰到过的问题,可以直接在UWA问答里搜索多线程渲染进行查看。

该回答由UWA提供,欢迎大家转至社区交流:

https://answer.uwa4d.com/question/5cac6d1326ca1f200dab8f19

RenderTexture

Q:RenderTexture AA设为1 depth是0,在PC端内存大小是对的,到手机端内存增长了三倍左右,为什么呢?

A1:三倍不太应该,建议通过UWA GOT Online服务或者UWA线上深度测评来查看每个RenderTexture的具体参数,分辨率、格式等参数是否正常。

该回答由UWA提供

A2:内存有变化可能是因为分辨率,RenderTexture的大小是跟着分辨率走的,你比较下你在PC上看的RenderTexture分辨率和手机上RenderTexture分辨率分别是多大。

感谢deviljz@UWA问答社区提供了回答欢迎大家转至社区交流:

https://answer.uwa4d.com/question/5cb58854d3016c751b5a4430

UI

Q:如图,我们项目自己实现的文字描边,按照我对Unity的合批理解,应该是2个DrawCall,但是实际却是4个,猜测应该是TextShaderOutline的ModifyMesh函数中SetUIVertex方法导致合批失败。如果是,不知道原理是什么?有没有更好的解决方案呢?

功能地址TextureShaderOutline.rar

(http://t.cn/Eay1a1D)

A:你这个方案和(http://t.cn/Eay1yW9)有点类似,且做过改进吧。我看了你们只使用了一个材质球。不过我这边Unity版本低一些,你的方案打开有点乱,感觉显示有问题,我把红色字左右拖动,颜色会变,很奇怪。

用博客上原方案,我试了这种叠加的情况能合批(前提是材质球用同一份,颜色不一样,就会是2份材质球了)。

我再针对Unity 2018,调整了一下方案,看看是不是满足你们的需求:

Unity 2018能传递UV2、UV3,然后tangent.zw normal.z 也勉强可以用一下,所以用UV1、UV2存放最原始的UV区域(裁剪用),UV3、tangent.zw传递outlinecolor,normal.z传递outlineborder,这样颜色和宽度变化就不需要改材质球,就能合批了。(注意z轴方向不能缩放,且UI和所在canvas要平,否则tangent.z和normal.z传递会不准确)

参考项目test2018_1_outline.rar

(http://t.cn/Eay1EWu)

(题主Rhett补充:我们这边将ModifyMesh方法中去掉position的上传,就可以合批了。)

感谢真木@UWA问答社区提供了回答欢迎大家转至社区交流:

https://answer.uwa4d.com/question/5c98a8bc419e740b2b8afb08


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com

官方技术博客:blog.uwa4d.com

官方问答社区:answer.uwa4d.com

官方技术QQ群:793972859(原群已满员)

封面图来源于网络

UWA DAY 2019精彩盘点!

近期精彩回顾

【厚积薄发】场景贴图的分级策略!

【厚积薄发】CommandBuffer的GPU开销!

【厚积薄发】PostProcessing V2 效果异常!

【厚积薄发】如何规划UI图标图集!

android信鸽推送demo_【厚积薄发】手游推送方案相关推荐

  1. 【腾讯Bugly干货分享】手游热更新方案xLua开源:Unity3D下Lua编程解决方案

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2bY7A6ihK9IMcA0bOFyB-Q 导语 xL ...

  2. 手游热更新方案xLua开源:Unity3D下Lua编程解决方案

    转载:https://mp.weixin.qq.com/s/2bY7A6ihK9IMcA0bOFyB-Q 导语 xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾 ...

  3. android移动体感 pc,android pc模拟器推荐 腾讯手游助手

    下面小编给大家推荐一款可以直接在电脑上玩手游的android pc模拟器,这个模拟器叫腾讯手游助手,腾讯手游助手是国内首家自主研发游戏模拟引擎,首家支持微信登录的手游模拟器,率先实现了重力感应操作模拟 ...

  4. android n模拟器,电脑上玩手游?BlueStacks推出Android N Beta版模拟器

    IT之家1月23日消息,相信有不少玩家都有过在电脑上玩手游的经历,打怪升级这类游戏在操作似乎还是交给键盘和鼠标比较高效,电脑端体验安卓游戏自然就要用到模拟器了,但是尴尬的是似乎这些模拟器多数都停止了开 ...

  5. ios android 游戏延迟,《英雄联盟手游》iOS延迟上线原因解析 ios为什么推迟上线...

    导 读 今天海外很多地区的<英雄联盟>手游安卓版都开启了公测,可是IOS版却被推迟到了明天,明天后才能在苹果商店下载英雄联盟手游.一般双平台都是会保持同步进行的,那么这个到底是什么原因呢? ...

  6. android 补签控件,问道手游安卓12月8日维护公告 新增补签功能

    各位亲爱的道友,为保证服务器的运行稳定和服务质量,问道手游所有安卓服务器将于2016年12月8日早上3:00进行停机维护,预计需要维护6小时,如果在预定时间内无法完成维护内容,开机时间也将继续顺延. ...

  7. 剑灵革命android汉化教程,剑灵革命手游中文界面怎么设置?台服中文界面设置教程...

    剑灵革命手游中文界面怎么设置?许多玩家都不太清楚这个游戏的设置,不知道怎么把英文界面给设置成中文界面,下面就让浏览器小编为大家带来,剑灵革命台服中文界面设置教程. 剑灵革命手游中文界面怎么设置? 在游 ...

  8. android 四方向摇杆源码,手游摇杆(一)最简单的四方向摇杆

    摇杆是所有手游中不可或缺的一部分,是最基本的操作方式,下面是用cococ creator实现的一个简单的四方向摇杆,后面将基于此慢慢优化. 一.场景 新建一个场景,拖入三中图片,如图: 分别表示:sp ...

  9. 刀塔霸业android如何更新_刀塔霸业手游最新版本更新内容 最新版本怎么更新

    第1页: 展开 大小:141.80 MB类型:策略游戏 刀塔霸业手游最新版本更新内容,最新版本怎么更新?6.25日刀塔霸业更新了最新的版本,各种平衡性调整以及性能优化. 安卓可以使用UU加速器进行更新 ...

最新文章

  1. gradle工程环境搭建---从SVN上导出项目源码
  2. CodeForces Gym-101350M
  3. OpenCV与Python之图像阈值化
  4. 子页面跳转到父页面指定地方
  5. int 互换 java_Java基础中Int类型变量值互换的几种方法
  6. 在独立Java应用程序中使用Tomcat JDBC连接池
  7. [html] 为什么我们要使用web workers?
  8. DataGrid添加滚动条
  9. 掌握 需求过程阅读笔记02
  10. 小魔术用计算机猜年龄,魔术中的数学之猜年龄
  11. 关联分析:Apriori算法
  12. 润雅信息完成B轮融资 大数据平台赋能汽车销售
  13. PS快速制作凹陷直线
  14. ui设计需要会html吗,高逼格UI设计需要从何入手?
  15. 【朝花夕拾】Android编码风格拾遗
  16. 京东商品主图定时替换,90%卖家这样做
  17. 程序员、大数据、算法黑科技
  18. 弹性法计算方法的mck法_SAM4E单片机之旅——9、UART与MCK之MAINCK
  19. 【自动化】浅度分析自动化行业,深度好文!
  20. 利用计算机卸载,为什么我不能在计算机上卸载软件! !

热门文章

  1. cmd非运行完再保存,结果显示保存同时进行
  2. Go并发编程中的那些事[译]
  3. PXE自动化部署vsphere esxi6.5
  4. 二、StreamAPI
  5. 我学的是设计模式的视频教程——命令模式vs策略模式,唠嗑
  6. 在CentOS 6.3中安装与配置JDK-7
  7. web页面 float定位导致“溢出现象”处理
  8. C# 线程手册 第五章 扩展多线程应用程序 系列
  9. 奇怪的方式c语言,C语言中奇怪的C语言特性
  10. 【学习笔记】1、Python的基本介绍