unity editor

【Unity游戏开发】马三的游戏性能优化自留地

人盡茶涼 提交于 2020-08-19 16:26:57
一、简介   很久没有更新博客了,最近马三比较忙,一直在处理游戏中优化相关的事务。我们的游戏自从开发以来一直没有做过比较系统的性能优化,最近因为各种原因需要对游戏进行优化,其他同事都有开发任务,因此性能优化的任务就落在了马三身上,说实话马三在性能优化方面也没有太多的经验,都是不断地咨询前辈并且结合网上的资料摸着石头过河。本篇博客中马三就和大家分享一些优化过程中的心得体会,顺便记录一下方便自己日后查阅。 二、优化   1.闪退问题排查   这次优化是因为手机频繁地闪退引起的,我们测试机用的的iPhone11 Pro和iPhone11 Pro Max(博主写下这篇博客的时间是2020年),此时这两款手机可以说是市面上性能最强劲的两款手机了,但是我们的游戏最近跑在上面缺频繁地闪退。虽然马三比较有先见之明地接入了Bugly SDK,并且在Bugly控制台上也捕获到了闪退信息,而且进行了符号表解析,但是Bugly上仅仅有下面这张图这样一个简单的堆栈信息,并不能看出具体是因为什么引起的闪退。   此时就需要进行iOS真机调试了,当马三准备真机调试的时候才发现我们打包机的XCode版本是10.x,而我们的测试机的版本是iOS13.4.1,XCode版本太低并不能直接调试。马三按照网上的教程去下载了真机调试包,然后放在指定目录下。但是并没有什么作用,又试了网上各路大神提供的各种奇巧淫技

Addressable如何删除旧资源

ぃ、小莉子 提交于 2020-08-11 12:51:08
1)Addressable如何删除旧资源 ​2)Addressable如何更新Catalog文件 3)Editor在Android平台下加载AssetBundle的疑问 4)资源被打成AssetBundle后,图集被多次加载在内存中 5)Gfx.WaitForPresent耗时与GPU的关系 这是第209篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。 UWA 问答社区: answer.uwa4d.com UWA QQ群2:793972859(原群已满员) Addressable Q1:目前计划使用Addressable来实现资源热更新,实际真机测试发现当资源更新后,旧的资源Addressable并不会把它删除,同时可以看到App占用的数据文件会越来越大。请问有什么办法可以把指定的Group或Label的资源删除吗? 试了Addressable.ClearDependencyCacheAsync也不行。实际测试这个接口只能删除最新版本的资源。当本地已经是最新版本资源时这个接口确实有效;但是如果本地需要更新资源时,这个接口应该也是尝试去删除最新资源,然而本地并没有最新版的资源,所以大概就无效了。 A:调用Addressable.ClearDependencyCacheAsync实质是调用了 “Caching

Addressable如何删除旧资源

泄露秘密 提交于 2020-08-04 11:42:10
1)Addressable如何删除旧资源 ​2)Addressable如何更新Catalog文件 3)Editor在Android平台下加载AssetBundle的疑问 4)资源被打成AssetBundle后,图集被多次加载在内存中 5)Gfx.WaitForPresent耗时与GPU的关系 这是第209篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。 UWA 问答社区: answer.uwa4d.com UWA QQ群2:793972859(原群已满员) Addressable Q1:目前计划使用Addressable来实现资源热更新,实际真机测试发现当资源更新后,旧的资源Addressable并不会把它删除,同时可以看到App占用的数据文件会越来越大。请问有什么办法可以把指定的Group或Label的资源删除吗? 试了Addressable.ClearDependencyCacheAsync也不行。实际测试这个接口只能删除最新版本的资源。当本地已经是最新版本资源时这个接口确实有效;但是如果本地需要更新资源时,这个接口应该也是尝试去删除最新资源,然而本地并没有最新版的资源,所以大概就无效了。 A:调用Addressable.ClearDependencyCacheAsync实质是调用了 “Caching

Unity3D2018.3版本打包UWP遇到IOException: Win32 IO return

别说谁变了你拦得住时间么 提交于 2020-07-28 10:38:07
Unity3D2018.3版本不是很稳定,在需要Target SDK Version为10.0.17134和10.0.17763版本时,打包UWP会遇到 IOException: Win32 IO returned 234. Path: C:\Program Files (x86)\Windows Kits\10\References\10.0.17763.0\Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract\2.0.0.0\Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd" or "Temp\StagingArea\Data\Managed\Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd System.IO.File.Copy (System.String sourceFileName, System.String destFileName, System.Boolean overwrite) (at

Unity 游戏框架搭建 2019 (四十二) MonoBehaviour 简化

谁说我不能喝 提交于 2020-05-06 14:21:56
在前两篇,我们完成了第九个示例。为了完善第九个示例,我们复习了类的继承,又学习了泛型和 params 关键字。 我们已经接触了类的继承了。接触继承之前,把类仅仅当做是方法的集合,接触了继承之后,我们的类还可以使用继承来解决一些问题。 第十个示例 在 Unity 中,我们的脚本都往往继承自 MonoBehaviour,继承了之后我们就可以在脚本内编写很多功能。比如访问 transform/gameObject,再比如控制动画接收碰撞事件等等。另外我们继承了 MonoBehaviour 才能被作为脚本挂到 GameObject 上。 仅仅是通过继承,MonoBehaviour 的很多功能都能够进行复用。所以继承的一个作用就是代码复用。而我们知道方法也可以代码复用,泛型可以对结构进行复用。那么继承能是复用什么? 继承既能复用代码也能复用结构。不过术业有专攻,有的情况下使用方法进行复用更合理,有的情况下适用于泛型,当然也有适用继承的情况。 像 GameObjectSimplify 和 TransformSimplify,这两种方法集,目前其实通过继承来实现会更好一点。因为这两个类中的方法全部都是要传一个固定的对象进去的,比如 GameObjectSimiplify 的每个方法第一个参数都是 GameObject 参数,而 TransformSimplify 也是如此

Unity学习-优化_图集归类以及Unity和texturepackter的动态批处理

99封情书 提交于 2020-05-02 10:16:25
(前面是废话,可以略过,分割线下面是内容) 前两天研究完了LOD 和 MipMap 感觉很简单,实现起来不用多久。 但是发现如果将某些功能运用在商业代码上,为了提高效率,要做很多前期工作。 这几天一直在学习游戏开发优化方面的技巧,感觉都很片面,实际的LOD 和 MipMap这些功能只有在一些需要大量摄像机移动的场景用的比较多 固定视角或者是锁死深度的游戏 其实这方面用的比较少,而目前市场上大部分都是锁死视角或者锁死深度的游戏。。 于是这两天重点去研究了下关于图集的优化。 优化图集的目的是为了降低DrawCall的额外产生,在设计UI框架的时候,就要考虑好文件结构和图集的处理方式了。 我目前工作的 项目采用的是通用作法,把每个模块单独打一个图集,特别大的背景图则单独加载。 在学习打图集的过程中,有一个很深刻的感受。。我发现了很多没听说过的技术,牵根连枝,拔一根萝卜带起一片泥那种。 我想学打图集以及图集的规划和设计,但是项目模块很多,跟UI,图片产生关系的工作量都非常的大。如果人工做这件事情需要消耗很大的精力 所以我在想学图集的时候,不得不学习怎么自动化打图集。于是看起了项目工程里面的TexturePacker工具。非常方便,于是也想做一个。 在学习TexturePacker的时候,又发现了一个问题,我想要批量打包,TexturePacker只能做到把碎图拼成一张整图

用Unity3D做游戏开发在Android上的常用调试方法

杀马特。学长 韩版系。学妹 提交于 2020-05-01 13:57:53
Hdg Remote Debug 远程调试 游戏运行在手机上,可以通过pc端的unity来随时修改当前场景中GameObject的变量,从而改变手机上运行时的表现。比如,我可以勾掉下图中的“Enabled”,那这个object就被立即隐藏了;或者改变"Local Position”将物体平移。 Unity的商店中有展示图片和视频演示 可参考这篇文章: Hdg Remote Debug 远程调试,解决移动端问题的工具简介 ​ 手机上实时打印Unity日志 使用此工具,不管在手机或者Unity Editor中,你都可以很容易地检查/查看游戏输出的日志,而不需要回到项目和做任何测试跟踪问题!(开源免费),也无需通过adb来查看日志文件 详情查看我之前的文章: 便捷的方式在手机上查看Unity3D的Console Log(调试信息 日志) ​ ADB连接Unity ADB 通过USB连接时,在Unity中输入 127.0.0.1,不要输入端口号 IP填写127.0.0.1 adb forward 端口号选用55000 ~ 55511范围,或者4600 (5.x ~ 2017) 4.X版本,引擎代码中写死了常量55000 具体详细细节查看: Unity3D 秘籍之 为何你无法使用ADB USB Profiling Android Player ​ 调试Unity.exe 通过IDA 调试

Unity调用Android相册

我们两清 提交于 2020-05-01 07:26:17
最近有一个项目有这个需求,让用户上传自己的交易凭证的截图,之前因为对调Android原生的东西不太熟悉,就先放了一边 因为项目已经上线,只不过是该功能未开放而已,那么现在为什么要写这篇博客呢,是因为........因为最近有客户产生交易申诉,也就是两方交易,一个说我给钱了,另一个说我没收到钱 这样的情况下,这个功能就显得很重要了,于是立马开始着手这个功能的开发 虽然说网上一搜一大把源码,可是几乎每一个能用的,于是放弃,还是自己研究吧,这个过程踩过无数坑,掉了无数发,流了无数泪 PS:后面会说调IOS相册的,因为我们的项目都不可能只有Android或者只有IOS的吧,这里说一个小插曲,也是这个插曲使我决定了先写调Android相册原因 π_π 我花了两天时间,看了无数教程,终于把调Android的demo写好了,然后就开始写ios 的,又用了两天把ios的研究好了写完demo了,回过头来发现之前Android的demo包又不能用了,真是玄学 有时候开发这个东西,你不信玄学还真是不行,于是重头又写了一遍,还是不行,于是又开始研究,终于搞定,这篇文章涉及到C#,java,Unity,AndroidStudio,还是建议有些基础的人看,好了,下面步入正题 这篇文章会很长,因为我会把自己踩过的坑详细的说清楚是怎么解决的 逻辑:Unity调用Android的方法,打开相册

全新的Unity跨平台开发 IDE JetBrains Rider 2019.2 x64特别版下载

别来无恙 提交于 2020-04-27 19:26:41
Rider 基于 JetBrains 的平台,JetBrains 的平台很受那些使用 IntelliJ IDEA 的 Java 开发者和使用 WebStorm 的 JavaScript 开发者的欢迎。Rider 的主要 .NET 组件是 ReSharper,ReSharper 是 Visual Studio 的一个独立语言服务器扩展组件,它提供了代码分析、代码补全、代码重构、代码修复等功能。Rider 可以在 Windows、Mac 和 Linux 上运行。 强大的跨平台 C# 编辑器 JetBrains Rider 是一款快速强大的 C# 编辑器 ,用于在 Windows、Mac 和 Linux 上进行 Unity 开发。 以无与伦比的 2500 多项智能代码检查和重构,Rider 增强您的 C# 体验,使您更加迅速编写零误差的代码。 Unity 轻松开始 Rider 有内置的 Unity 支持,当你初次打开 Unity 解决方案时 它会自动将 Unity 配置为使用 Rider 作为默认的 C# 脚本和 shader 文件编辑器。 完成设置后,之后双击 C# 脚本或 shader 资产,即可在 Rider 中打开解决方案。 控制Unity 编辑器 由于集成的双向通信,无需离开 Rider,您即可切换进出 Play 模式,暂停,和逐帧执行! 工具条包含游戏视图按钮 Play

Unity安装(Windows版)

ぐ巨炮叔叔 提交于 2020-04-27 18:42:46
安装前删除注册文件 删除安装目录中 Unity.exe.bak Unity 下载助手 Unity 下载助手是一个小型可执行程序(大小约为 1 MB ),它允许您选择要下载和安装的 Unity Editor 的那些组件。 如果你不知道要安装,保留默认选择,单击继续 ,然后按照安装程序的说明哪些组件。 用命令行在 Windows 上安装 Unity 在 Windows 上从命令行安装 Unity Editor 和其他组件时,可以使用以下选项。 请注意,安装程序命令行参数区分大小写。 Unity Editor 安装 / S 执行无提示(没有问题)安装。 / D = PATH 设置默认安装目录。 在与静默安装选项组合时很有用。 默认文件夹是 C : \ Program Files 文件( x86 )的 \unity ( 32 位) 或 C : \ Program Files 文件 \ 统一 ( 64 位) 例: UnitySetup64.exe /S /D=E:\Development\Unity 将 Unity 静默安装到文件夹 E : \ Development \ Unity ,这将是 Unity 安装的根。 在这种情况下, Unity 编辑器可执行文件将安装在 E : \ Development \ Unity \ Editor \ Unity.exe 中。 “/ D”