
Unity性能分析及优化
文章平均质量分 87
独立游戏开发指南
这个作者很懒,什么都没留下…
展开
-
Unity骨骼动画优化
一:骨骼动画的原理用Unity做游戏经常会用到3D角色,也就会用到骨骼动画。骨骼动画对性能的影响其实非常大的,在说这个问题之前,先来说说骨骼动画的原理。我之前做过多种骨骼动画,包括写过2D的骨骼动画系统(类似于现在比较流行的龙骨系统),也在flash的stage3D里面写过3D的骨骼模型动画。骨骼动画的原理实际上都是一样的:首先你需要有一个模型,2D或者3D的,这些模型是由顶点组成...转载 2019-12-02 17:18:10 · 1915 阅读 · 1 评论 -
Unity 音频资源优化
一:音频参数介绍1.1:Unity3D游戏引擎一共支持4个音乐格式的文件.AIFF 适用于较短的音乐文件可用作游戏打斗音效 .WAV 适用于较短的音乐文件可用作游戏打斗音效 .MP3 适用于较长的音乐文件可用作游戏背景音乐 .OGG 适用于较长的音乐文件可用作游戏背景音乐导入前的声音格式选择 短声音:.aiff和.wav 长声音:.mp3和.ogg...原创 2019-11-29 11:56:20 · 722 阅读 · 0 评论 -
关于Unity动画系统优化,你可能遇到这些问题
关键字内存泄漏资源制作一、内存泄漏Q1:我们测试发现,当Animator Controller挂载的动作比较多时,即使切换成另外一个动作很少的Animator Controller,任务的动作信息还是不会释放。我们将英雄打成一个AssetBundle,然后又把定制的Runtime Animator Controller加载替换进去,英雄自带的Runtime An转载 2017-03-07 17:36:12 · 1077 阅读 · 0 评论 -
Unity 几种优化建议
最简单的优化建议:1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU。2.如果你用U3D自带的SHADER,在表现不差的情况下选择Mobile或Unlit目录下的。它们更高效。3.尽可能共用材质。4.将不需要移动的物体设为Static,让引擎可以进行其批处理。5.尽可能不用灯光。6.动态灯光更加不要了。转载 2017-03-06 11:36:05 · 1153 阅读 · 0 评论 -
CPU卡顿怎么解?13步教你轻松搞定UI优化
博尔特以9.58秒创造了百米世界纪录,假设他是跑酷游戏的角色,卡顿一帧就足以把冠军拱手让人。Unity3D程序各项性能问题,从Profiler可观察到许多蛛丝马迹。下面看几个典型例子Profiler的CPU指标截图。有时候蛛丝马迹非常显眼,闪瞎钛白金像素眼。然而有些过于显眼,以至于Profiler都展开不了看详情。囧。[UICamera.Update]有时候要展开很转载 2017-03-06 11:20:16 · 2802 阅读 · 0 评论 -
Unity手游iOS内存分析和测试
内存是Unity手游的硬伤,如果没有做好内存的相关管理和详细的测试,游戏极有可能出现卡顿、闪退等影响用户体验的现象。在此,笔者为我们介绍了一些Unity手游内存分析和测试过程中比较实用的测试场景案例、分析方法和解决方案等。由于Android和iOS分析思路比较类似,在这里我们仅拿iOS内存分析和测试为例,供大家参考。测试目标保证1G内存的iOS设备(iPhone 6、iPhone 6转载 2017-03-03 17:19:59 · 1300 阅读 · 1 评论 -
性能诊断与优化工具(Q&A)
Q1:Texture占用内存总是双倍,这个是我们自己的问题,还是Unity引擎的机制?出现这种情况的原因有两种:一种是你在真机运行时开启了Read&Write。另一种可能是Unity的Bug,目前的Unity 5.2.3 release note如下 :(735644) - OpenGL: Fixed texture memory usage reporting in profil转载 2017-03-03 10:46:51 · 855 阅读 · 0 评论 -
扒一扒Unity Profiler中这几个“占坑鬼” (WaitForTargetFPS、Gfx.WaitForPresent && Graphics.PresentAndSync)
扒一扒Unity Profiler中这几个“占坑鬼”张鑫7 个月前WaitForTargetFPS、Gfx.WaitForPresent 和 Graphics.PresentAndSync是我们经常会被问到的参数。想必正在读此文的你也经常在Profiler中遇到过这几项CPU开销过大的情况。对此,我们今天就来好好地聊一聊这几个参数的具体含义和触发规则。WaitF转载 2017-03-03 10:44:50 · 2261 阅读 · 1 评论 -
Cpu优化大全 之 代码优化
前言观察AppStore中游戏应用的评论,玩家对手机发热这一项评论的非常多。在玩家眼里这是游戏优化的不够好,太耗电。主要原因是CPU运算量大。这篇文章从两个方面介绍如何提高运算效率。其中“使用技巧”主要介绍在Unity研发中一些使用不当的方式,以及如何修正。“算法优化”项算是抛砖引玉,算法的优化总是无止境的,不同项目类型都有自己需求。使用技巧神奇的启动时间在转载 2017-02-28 10:37:33 · 1701 阅读 · 0 评论 -
Unity3D之编辑器脚本获取资源内存和硬盘大小
内存使用Profiler可以查看某个资源的内存占用情况,但是必须启动游戏,并且待查看的资源已经载入游戏中。我希望的是不启动游戏,也能看到它的内存好做统计。硬盘由于unity中的资源压缩格式记录在meta中所以,在文件夹中看到的资源大小是不正确的。打开unity需要选择一个资源,比如Texture、然后在右侧Inspector面板最下面可以看见它真实的硬盘占用。这个数据我也希转载 2017-02-22 18:44:56 · 1476 阅读 · 0 评论 -
联机Unity Profile性能调试技巧
http://www.jianshu.com/p/5ef7557245f1这里暂且讨论使用Mac对iOS设备进行调试的方法。至于Android平台,会有细节但不是非常重要的不同。为什么需要联机Profile?大部分情况,直接在工作机(PC、Mac)用Unity针对工程进行Profile就能查出性能的瓶颈。但在不同的设备会有不同的性能表现、甚至一些设备由于硬件设计转载 2017-01-23 18:31:48 · 790 阅读 · 0 评论 -
[Unity] 使用Profiler.BeginSample()定位性能热点
Unity客户端优化中最常使用的辅助优化工具是Profiler。使用Profiler,可以方便我们定位游戏程序的性能瓶颈,如定位游戏中单帧耗时过高的模块、定位游戏中产生GC较多的模块等等。 尽管如此,在实际优化分析过程中,即使直接使用Profiler定位到游戏瓶颈的大致模块,也往往不能分析出更精确的瓶颈代码。例如,在实际开发过程中,我们发现Game.Update()这一模块特别耗时,转载 2017-01-23 17:24:09 · 6966 阅读 · 0 评论 -
Animator组件中Controller里的Clip Count为0
正常情况下,Animator组件中Controller里的Clip Count数量大于0, 否则播放不了动画,如下图所示:但当对应的Animation动画发生变化时,这里面的Clip Count变为0;复现方式:选中Animation后,调到Debug模式下,勾选Legacy后,再调回到Normal模式;如下所示:这时,Animator组件中Controller原创 2016-11-29 14:50:24 · 2433 阅读 · 0 评论 -
Unity3D 使用link.xml来控制strippinglevel减少dll库大小技巧、优化安装包大小
无论从减少安装包大小还是迎合unity64位IL2CPP默认就会打开StrippingLevel功能,通过库剖离来减少DLL的空间大小。那么问题是我们自定义库使用了一些type,例如xml,或者webclient c#封装的http请求等,如果被任性解剖出去,那么肯定是不允许的。可以在Assets/下添加link.xml文件来手动排除不被剖离的类。转载 2016-11-12 16:29:21 · 7833 阅读 · 0 评论 -
NGUI研究院之与图片拼接的1像素接缝
如下图所示美术给我两张255X255的图片让我来拼接。第二张图的X坐标明明是X偏移255的为什么中间有一像素呢? 此时如果你不加思索的就把X偏移改成254。仔细看看下面这个位置明显图片没有被拼接上?如果两张图片都是纯色的话可能这样可以被拼上,但是这是不解决核心问题的。。 如果你看NGUI的源码你会发现NGUI会自动把奇数宽高的图片补起成偶数的宽高图片转载 2016-10-18 18:41:00 · 1383 阅读 · 0 评论 -
Unity5.3a4新版内存分析工具 -MemoryProfiler
以图行可视化方式直观显示资源所占内存百分比[包括模型、贴图、动画序列、字体等]以索引列表说明当前游戏对象之间的引用关系,[包括类名、ID、销毁状态等]方便非专业技术人员比如TA、美术设计师查看当前资源性能开销[比老版本的门槛低了很多]下载地址:https://bitbucket.org/Unity-Technologies/memoryprofiler/overview 方法:转载 2016-10-18 11:28:00 · 613 阅读 · 0 评论 -
使用Profiler工具分析内存占用情况
Unity为我们提供了一个强大的性能分析工具Profiler。今天我们就使用Profiler来详细分析一下官方例子AngryBots的内存使用信息数据。 首先打开Profiler选择Memory选项,在游戏运行的某一帧查看Detailed选项数据(Simple模式的数据很直观,可以知道内存大体被哪部分占用了,网上也有很多相关介绍,我就不再啰嗦了),如下图所示:转载 2016-10-18 11:26:02 · 655 阅读 · 0 评论 -
Unity性能优化—声音优化
目标给你一个关于在游戏中通过优化声音提高性能的建议 为什么我的游戏加载时间那么长?为什么播放游戏声音时延迟那么长?为什么声音文件占那么多的内存?为什么我一播放声音游戏就那么卡?难道是因为我在开发时对声音的处理有问题?也许你在加载声音时都会出现以上的问题冲到你的脑门上!!好吧,我知道这种感觉!!声音管理起来很棘手;当我开发第一个游戏的时候我转载 2016-10-17 18:49:02 · 6111 阅读 · 0 评论 -
合并Mesh网格
1:对于具有相同材质的对象,可以通过把他们的Mesh网格(Mesh Filter)合并在一起,然后禁用被合并的对象,来达到减少DrawCall的效果;void Start () { MeshFilter [] meshFilters = GetComponentsInChildren (); CombineInstance[] combine = new原创 2016-10-16 17:23:07 · 1894 阅读 · 0 评论 -
批渲染batches与DrawCall的关系
批渲染(Batch)batch render 是大部分引擎提高渲染效率的方法,基本原理就是通过将一些渲染状态一致的物体合成一个大物体,一次提交给gpu进行绘制,如果不batch的话,就要提交给很多次,这可以显著的节省drawcall,实际上这主要节省了cpu的时间,cpu从提交多次到提交一次,对gpu来说也不用多次切换渲染状态。当然能batch的前提一定是渲染状态一致的一组物体。Unity转载 2016-10-16 17:20:05 · 14011 阅读 · 0 评论 -
Unity UI分析工具
UI ProfilingToolsUnity UI分析工具确认版本:5.3难易度: 上級There are several profiling tools usefulfor analyzing a Unity UI’s performance. The keytools are:有一些有用的分析Unity UI的分析工具。主要的翻译 2016-10-11 16:09:37 · 4288 阅读 · 1 评论 -
Unity3D里foreach,using和Coroutine的GC问题探究及解决方案
Foreach:很多Unity3D的优化技巧甚至一些公司的笔试题中都会涉及foreach会产生GC Alloc因此游戏运行时中尤其是在Update里应尽量避免使用foreach的这个注意事项。foreach真的会产生GC Alloc吗?我们作如下测试:(Unity3D 5.4.0)创建脚本TestForeach.cs:1234567891011121314151转载 2016-09-28 19:17:36 · 2820 阅读 · 0 评论 -
mono中的内存泄漏和WeakReference(弱引用)的使用
我们大家有时候在做 unity 项目的时候,游戏后期最常见的问题,应该就是内存泄漏了。 其实这里面有一些小细节,就可能在你不知不觉间导致内存泄漏的发生。 这里说说释放对象时容易发生的问题。先来看一段代码:using UnityEngine;using System;using System.Collections;public class MemoryLeak转载 2016-09-23 10:42:09 · 1010 阅读 · 0 评论 -
使用Animation组件制作动画的具体流程
动画制作流程: 1:如何搭配环境 a:导入NGUI包后,按Ctrl+S保存场景,在菜单栏显示NGUI菜单; b:选择NGUI——Create——Sprite后,在场景中创建NGUI界面,并在上面出现一个Sprite组件; c:选择Sprite,选择图集(Atlas)后,在上面添加一张图片, 4:设置Sprite中Size的宽度与Game视图分辨率的宽原创 2016-09-17 17:12:21 · 3722 阅读 · 0 评论 -
Animator与Animation之间的互转
Legacy Animation Can’t Animate Material Property问题描述使用Animator可以控制材质的属性,但是Animator的初始化比较耗CPU,我们这里想继续使用Animation,但是Aniamtion自Unity 4.3之后就无法直接控制材质的属性了.问题原因Unity新版改变了Material 在 Aniamtion原创 2016-09-17 16:53:29 · 6034 阅读 · 0 评论 -
解决Unity3d 4.3 动画系统带来的烦恼
最近有很多同学问我关于unity3d 4.3更新之后动画系统和以前不一样了,而且之前用的非常熟练的创建动画和修改动画很多操作都不好用了,那么在这里和大家分享一下三杀的个人经验,方便大家使用unity3d 4.3的动画系统。首先,我们要明确知道的一点是Unity3d 是逐步的将老的动画系统删除,取而代之的是新的动画系统叫做Mecanim。所以就会出现变来变去,越变越不好用的情况,不过等到Un转载 2016-09-17 16:43:40 · 1326 阅读 · 0 评论 -
Unity3D如何减少安装包大小
译官方文档:http://docs.unity3d.com/Manual/ReducingFilesize.html PDF文档:http://www.rukawa.cn/Uploads/Attachment/ReducingFilesize/ReducingFilesize.pdf 原文地址:http://www.rukawa.cn/index.php?s=/home/article/d转载 2016-09-15 10:59:35 · 1449 阅读 · 0 评论 -
记一次基于Unity的Profiler性能分析
A. WaitForTargetFPS: Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间 B. Overhead: Profiler总体时间-所有单项的记录时间总和。用于记录尚不明确的时间消耗,以帮助进一步完善Profiler的统计。 C. Physics.Simulate: 当前帧物理模拟的CPU占用时间。转载 2016-09-06 16:05:19 · 1070 阅读 · 0 评论 -
[Unity3D]关于Android真机调测Profiler
U3D中的Profile也是可以直接在链接安卓设备运行游戏下查看的,导出真机链接U3D的Profile看数据,这样能更好的测试具体原因。大概看了下官方的做法,看了几张帖子顺带把做法记录下来。参考:http://docs.unity3d.com/Documentation/Manual/Profiler.html用安卓真机调测Profile转载 2016-09-06 10:23:09 · 683 阅读 · 0 评论 -
Android设备连接Unity Profiler性能分析器
Unity提供两种方式让Developer的Android设备连接Profiler进行性能分析:1、通过wifi,Android设备和计算机处于同一个Wlan中。2、通过USB ADB一般情况我们的计算机都是网线,所以我们采用ADB的方式。相比与wifi,ADB也更及时的反应设备性能。官方的英文文档如下:[html] view plain c转载 2016-09-06 10:18:11 · 785 阅读 · 0 评论