首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

游戏优化系列三:Unity游戏的黑屏问题解决方法

作者 大家好,我叫Jack冯; 本人20年硕士毕业于广东工业大学,于2020年6月加入37手游安卓团队;目前主要负责海外游戏发行安卓相关开发。...系列目录 游戏优化系列一:海外谷歌应用适配相关 游戏优化系列二:Android Studio制作图标教程 游戏优化系列三:Unity游戏的黑屏问题解决方法 (本章讲解) 本文目录 一、背景 二、分析及解决...脚本生命周期 (5)分析脚本生命周期 三、结论 一、背景 在Unity游戏工程中,经常遇到这样的问题:打开登录弹框时,点击Home键先处理其他事宜再返回,发现屏幕黑屏;或者打开了其他接受输入焦点的对话框或弹出窗口...在创建 MonoBehaviour 实例时(例如加载关卡或实例化具有脚本组件的游戏对象时)会执行此调用。...三、总结 综合分析,从桌面返回游戏App时,由于unity丢失焦点(I/Unity: UnityPlayerActivity OnApplicationFocus:False ),脚本没有执行,即无法渲染游戏画面对象

5.5K01
您找到你想要的搜索结果了吗?
是的
没有找到

Unity中巧用协程和游戏对象的生命周期处理游戏重启的问题

主要用到协程(Coroutines)和游戏对象的生命周期(GameObject Lifecycle)基础知识,巧妙解决了游戏重启的问题。 关于协程,这里有篇文章我觉得写的非常好,理解起来也很容易。...推荐先看这篇文章:对Unity中Coroutines的理解>> 协程简单来看分三部分: 1)启动,常用方法:StartCoroutine(IEnumerator routine) | StartCoroutine...Unity内置了一些yield指令(YieldInstruction): -)WaitForSeconds   等待指定的游戏时间(游戏流逝时间可用Time.scale调整) -)WaitForSecondsRealtime...最好当然是游戏自己实现,像启动App进程那样,先走销毁(Destroy)流程再走初始化流程(Init)。...Coroutine 使用筆記 [2] 对Unity中Coroutines的理解 [3] Unity 协程运行时的监控和优化

2.9K20

Unity游戏开发】Android6.0以上的动态权限申请问题

一、引子   最近公司的游戏在做安全性测试,期间也暴露出了不少安全上的问题。...三、Unity中的动态权限申请   那么在Unity开发中,我们又该如何处理Android的动态权限申请呢?对于那些需要动态申请的权限,我们依然还需要在AndroidManifest里面再做声明。...但是在游戏启动的时候一下就申请了4-5项暂时可能用不到的权限,这个操作对用户来说是不友好的。...比如我只想在游戏启动的时候申请一个存储的权限,而语音、定位那些权限我只想在游戏中需要的时候再进行二次确认怎么办?也就是希望将动态权限的申请进行延迟处理。   ...在我们使用到Unity一些需要授权的API调用时候(比如获取网络状态或者使用 Microphone Class),Unity会自动地去申请这些权限,毋须我们额外地多写Android相关的代码。

2.6K50

Doris开发手记1:解决蛋疼的MySQL 8.0问题

最近重新抽时间梳理了一下这个问题,这个问题本身不难解决,但是解决问题的思路我觉得值得与大家分享,献丑了啊,各位~~ 1.老革命遇到新问题 使用MySQL 8.0的客户端连接Doris时,如果不添加如下参数...默认的密码认证插件的变更 其实新问题的引入很简单,就是MySQL的客户端从8.0的版本开始,将原先客户端的默认的密码认证插件由mysql_native_password改为了caching_sha2_password...所以问题就回到了如何让ODBC的连接能够支持上述参数,笔者经历了下面的分析历程: 2.1 ODBC连接文档 ODBC是通过连接串的方式传参给MySQL的连接Driver的,如果能够像使用MySQL客户端的方式添加参数便可以解决...2.2 新旧版本的兼容性 既然MySQL从8.0开始切换了默认的密码认证插件,那么新的客户端是否可以连接老的MySQL服务器呢?MySQL本身是如何解决新老客户端的兼容问题的呢?...(加星重点) 当然,这里也留下一个TODO的问题:支持MySQL 8.0默认的caching_sha2_password的认证方式。

2.4K30

探索使用 Kubernetes 扩展专用游戏服务器:第1部分-容器化和部署

这是一款两人在线游戏,其中每个玩家都是 paddle,他们踢足球,试图互相得分。它具有一个 Unity 客户端以及一个 Unity 专用服务器。...因此,我们需要直接连接到游戏服务器,而无需任何中介,这会增加延迟,因为每一毫秒都很重要。 第一步是运行游戏服务器。...不幸的是,Kubernetes 不能为我们提供帮助,但是解决这个问题并不是特别困难。 第一步是确定要让流量通过的端口范围。...为了解决这个问题,我尽量让事情简单化:在创建我的 pod 时,我传递可以用作两个环境变量的端口范围,并让 Unity 专用服务器在该范围中随机选择一个值,直到它成功打开一个套接字。...客户端现在直接连接到专用游戏服务器,并玩游戏。 EtVoilà!(瞧)我们的集群中正在运行一个多人专用游戏

2.5K20

DeepMind和Unity合作,创建虚拟世界来训练AI

一开始,狗子自己的四肢都不会用,一路跌跌撞撞,才会勉强运动。 之后当他们开始以10,000 FPS训练1000只狗24小时后,狗群中“进化”出了一只天赋异禀的狗子:不仅会抓木头,还跳过了一个圈圈。...Unity不只做游戏 在3D游戏引擎方面,Unity可是一家独大。根据其官方数据,50%的手游和60%以上的AR/VR游戏目前都用到了Unity的引擎。 ?...不过,Unity可不只是一家游戏引擎公司,他们还做机器学习,此前推出过机器学习智能体工具包ML-Agents,这个工具包可以让研究人员和开发人员将使用Unity Editor创建的游戏转换为可以通过Python...显然,DeepMind CEO哈撒比斯也认同这一点: “游戏和模拟从一开始就是DeepMind研究计划的核心部分,这种方法已经在人工智能研究方面取得了重大突破,作为一名前游戏设计师,我很激动能与Unity...合作,创建虚拟环境,开发和测试我们的AI算法,来解决实际的问题。”

65820

WeTest即将参加Unite 2018大会,这些彩蛋你一定不能错过!

为了让开发者在开发过程中随时更方便的发现、解决游戏的性能问题,2017年末,腾讯 WeTest 联合 Unity 官方打造了性能分析工具 UPA(Unity Performance Analysis)...徐森 腾讯互娱品质管理部WeTest产品中心高级工程师,主导开发 Unity手游性能分析工具(UPA),并对接腾讯内部高星项目的性能优化。擅长手游客户端性能问题的发现及优化。...高川 Unity大中华区技术支持经理。曾在Gameloft,Glu等公司任高级工程师,团队技术负责人,有超过10年的游戏开发经验。...同时,基于大量的Unity工程实践经验,对游戏优化技术有着深刻的认知和丰富的积累。目前和Unity China Support团队一起为各大游戏企业提供技术支持。 GO!...WeTest特制彩蛋三发 ●  没看错!

63830

Unity中Android 触发home,回收覆盖在UnityPlayerActivity上层的activity的问题

问题 最近在开发一个Android SDK的项目,提供给游戏方接入,发现游戏unity引擎;正常游戏都是只有一个activity(继承UnityPlayerActivity),但是SDK业务交互上需要特定场景会弹出一个或者多个新的...分析 将打包的apk解析出AndroidManifest.xml发现,UnityPlayerActivity在AndroidManifest.xml中的launchMode是singleTask,发现问题了...后面,发现unityplayerActivity的launchMode是没有办法通过项目的修改 天真的想法二: 接上面的情况,我想应该是unity在打包默认模板配置死了,所以直接到unity的安装目录下去查找...打包apk,发现历史总是惊人的相似,结果还是不行 解决 发现上面的两个方法都不行,回到问题本质,就是singleTask的问题,再看AndroidManifest.xml的代码 <activity android...的,游戏主窗口才会设置成singleTask。

4.1K41

Unity游戏开发】性能优化之在真机上开启DeepProfile与踩坑

然后就正常打包并安装到Android手机上 安装好以后不要手动打开游戏,要通过命令行启动我们的游戏。...-e 'unity' '-deepprofiling' 通过命令行拉起游戏以后,还需要将手机连接到Unity的指定端口上面,这样Profiler才能接收到数据,具体命令是: "Unity-"后面跟着你的包名就可以了...有几个注意事项: 'unity'和'-deepprofiling'之间要有空格 游戏要让命令来启动,不要自己启动,否则会有一个警告,说此Activity已经存在 生成APK的Unity版本与用来开启Profiler...的Unity版本必须是同一个 如果自己已经手动启动了unity,则需要使用命令行重新拉起一遍游戏   按理说如果没有问题的话,此时就可以进行DeepProfile了我们的游戏了,网上很多教程也写到这里就结束了...马三甚至一度以为是因为DeepProfile模式比较消耗性能,因此Unity在移动平台上禁用了它。直到后来马三把相关的官方文档从头到尾认认真真读了一遍,才发现问题所在,下面就说说这个坑。

2K21

游戏大咖Unity发布机器学习工具,可大幅提高NPC的“智商”

安妮 编译整理 量子位 出品 | 公众号 QbitAI 欢迎来到游戏世界。 没听过Unity没关系,你肯定对王者荣耀、纪念碑谷、神庙逃亡2、Pokémon GO等游戏了如指掌。...没错,Unity就是它们的游戏引擎。 今天,Unity宣布推出Unity Machine Learning Agent(ML-Agent),将游戏引擎连接到谷歌TensorFlow等机器学习框架中。...在游戏开发的过程中,既不能让玩家因过于简单而无聊,也不能因难度太高丧失玩家兴趣。Unity开发者Arthur Juliani表示,Unity的ML-Agent将帮助增加游戏的可玩性。...△ 典型的强化学习训练循环 Unity希望设计一个系统,让游戏引擎更灵活易用。因此,Unity推出了ML-Agents,并且发布了开放测试版SDK。...Unity AI和机器学习技术部的副总裁Danny Lange在接受采访时表示,Unity的ML-Agents的作用并不局限于虚拟游戏,还将加速现实生活中机器人等技术的进步。

1.4K60

60帧的丝般顺畅 - QQ飞车手游优化点滴

很多萌新会遇到无法手机Profiler的问题,如果你也遇到了,请确定下面几个点(假设Android手机) 1. 手机是开发者模式,且在cmd中输入adb devices能看到自己的设备 2....Unity当前是Android工程 5....如果不是在本机构建的,需要在cmd中输入 adb forward tcp:54999 localabstract:Unity-xxxx , xxxx是游戏的包名。...如果能找到可以用的设备可以,建议还是可以一下看看,还是能看到很多东西的:DC数量,绘制顺序,渲染shader,动态修改shader看效果,贴图格式… 这个东西除了看性能还可以用来查一些平台相关的渲染错误...遇到上线前三天发现游戏只有十几帧的,这就只能砍效果了。 程序ic方面主要是对C#的语言底层机制的熟悉程度以及对数据结构的理解,一些明显有性能问题的写法要规避。

1.1K60

Unity3D-网络(一)高级开发-网络解决方案

,让一个用户创建多人模式并允许他人加入 中继服务器解决连接问题,以便玩家在使用防火墙的情况下能相互连接 既然我们的目标是支持一切游戏类型和任意数量的连接,我们首先开发基于 UDP 的新型高性能传输层。...二、Hight Level API(HLAPI) 就是Unity创建多人游戏的一个功能系统,依赖较低级别的实时通信层的传输服务,被用来处理多人游戏所需的许多常见服务。...当客户端启动时,networkAddress是要连接到的地址、networkPort 是要连接到的端口。 NetWorkManangerHUD:运行是显示UI ?...多人游戏大厅(Unity Multiplayer lobby )。...该服务器主要用来创建多玩家游戏。并提供强大的制作工具. 专门用于多用户联机游戏开发,支持Flash/Flex/Air, Java, .Net, Unity3D, Apple iPhone 开发。

3.1K11

60帧的丝般顺畅 - QQ飞车手游优化点滴

很多萌新会遇到无法手机Profiler的问题,如果你也遇到了,请确定下面几个点(假设Android手机) 1. 手机是开发者模式,且在cmd中输入adb devices能看到自己的设备 2. ...Unity当前是Android工程 5. ...如果不是在本机构建的,需要在cmd中输入 adb forward tcp:54999 localabstract:Unity-xxxx  , xxxx是游戏的包名。...如果能找到可以用的设备可以,建议还是可以一下看看,还是能看到很多东西的:DC数量,绘制顺序,渲染shader,动态修改shader看效果,贴图格式… 这个东西除了看性能还可以用来查一些平台相关的渲染错误...遇到上线前三天发现游戏只有十几帧的,这就只能砍效果了。 程序ic方面主要是对C#的语言底层机制的熟悉程度以及对数据结构的理解,一些明显有性能问题的写法要规避。

60120

王者荣耀用什么开发的?一文盘点客户端引擎

5、unity 官网:https://unity.cn/madewithunity ?...代表作:王者荣耀,火影忍者,原神,崩坏 编程语言:C#,Lua 概述:Unity侧重轻量级的开发,更偏向于移动端,在手游方面是非常强的,大概有70%的手游都是使用Unity开发的;自由度比较高,跨平台是最好的几乎支持所有主流平台...对于专注于小游戏公司,使用最多的是cocos creator 和laya,在我接触的苏州公司中 cocos creator 最多 对于中小型以上的游戏公司,使用最多的是unityunity是现在市面上使用最广的游戏引擎...对于大型的游戏公司,很多都有自己的UE4 项目,大的游戏公司都在探索,是未来的主流。 在我看来最稳妥的是学习Unity,如果你想搏一搏可以选择ue4 。你会选择什么呐?...原创打字不容易,点赞,转发,关注三,关注我公众号:【香菜聊游戏】有更多福利哦

5.5K20

Unity手游崩溃异常如何捕获--C#及JVM捕获

所以,C#脚本的异常危害相对较小,但是同样更加容易存在在游戏中。闪退问题能够及时发现并进行修复。...Update、OnGUI的异常也一定会引起游戏逻辑及画面上的一些异常。 从测试角度,C#脚本未捕获的异常时一定需要报告给开发者的。...System.AppDomain在Unity的文档中是不存在的,根据微软官网的解释,CurrentDomain获取到当前应用程序当前线程的应用域。...然后,在游戏里面,尝试在其他线程抛出异常。 ? 但是,抛出异常后并没有被这个处理函数接收到。 ?...默认的未捕获处理函数,在接到异常之后,最后会把进程杀死。如果,不杀死会照成无响应bug。 ? 在代码中增加上述,检测程序后,即可输出如下的日志结果。 ?

4.2K40

虚幻与Unity引擎 之 ✨ 为什么国内那么多开发者喜欢用虚幻或者Unity?

为什么国内那么多开发者喜欢用虚幻或者Unity? 虚幻第一版1998年问世,Unity第一版2005年面世 简单介绍 首先,使用哪一款游戏引擎去制作一款游戏,并不是根据使用者的喜好来制定的。...Unreal最大的问题不是不好用,而是它自带的Demo太优秀了,优秀到大多数人做出来的东西它自带的Demo都不如。 然后,我们反观Unity。 网上总是流传各种Unity的负面新闻。...是的,我们不用Unity去做高尖端游戏,不代表它做不了次时代画面的游戏。 ? 奥日2 ? 帕斯卡契约 Unity画面不行已经是老黄历了。...不过这不是引擎的问题,将来手机硬件升级以后,该强大的渲染管线支持高端手机将不会是问题。 届时,Unity开发的次世代手机游戏将会更普遍。...所以,对于国内的游戏市场来说,Unity更便宜是没问题的。 第四,也是对于个人来说最重要的一条。

2.7K41

Golang语言情怀--第109期 游戏服务器选择需要考虑哪些因素及开发技术栈说明

一个网络游戏要想长期运行下去,关键是用户体验,那么在初期阶段的游戏服务器租用环节就显得尤为重要,那么问题来了,网络游戏公司如何才能够在众多的服务器租用商中租用找到高性能、高性价比的游戏服务器租用呢?...3、网络游戏服务器:就是为多人在线游戏提供的一种特殊服务器,在这种模式下,用户可以通过云主机来连接到自己的电脑上进行操作。...从开发的技术栈的角度,建议如下: 1、单机游戏主要是用户下载到本地就可以玩,无需联网;目前涉及到的技术栈主要是前端技术栈,例如:unity、unreal engine等 2、多人在线游戏的技术栈,相比单机游戏而言要复杂很多...,需要服务器支持;目前涉及到额技术栈主要是前后端技术,前端:unity、unreal engine、cocos等,后端技术主要是c++,java,golang,nodejs等 3、网络游戏服务器和多人在线游戏和多人在线游戏其实大致技术使用的技术栈差不多...,只是服务器的架构可能不同 unity开发的游戏:《王者荣耀》《炉石传说》《纪念碑谷》《完美世界》《原神》《奥日2:精灵与萤火意志》《精灵宝可梦GO》《明日方舟》《一人之下》《剑网3:指尖江湖》; 游戏还有很多技术需要知道

22930
领券