巧妙设置Texture Type,将ShadowMask内存占用变成之前的1/4
0x00 前言
在这篇文章中,我选择了过去一周Unity官方社区交流群中比较有代表性的几个问题,总结在这里和大家进行分享。同时,也欢迎大家加入我们这个讨论干货的官方技术群,交流看法分享经验。
Unity官方社区交流群:629212643
0x01 Editor
Q: 请问可以通过script修改Scene View的Shading Mode吗?

A:可以通过脚本来修改Scene View的Shading Mode,只需要修改UnityEditor.SceneView.lastActiveSceneView.renderMode,选择自己想要的Shading Mode即可,其中renderMode是一个DrawCameraMode类型的枚举。
关于DrawCameraMode,可以参考这个文档:
https://docs.unity3d.com/ScriptReference/DrawCameraMode.html
Q: 请问一下,在Unity Editor中可以打开右上角的Stats来查看当前场景的一些性能数据指标,这些数据可以通过脚本来获取吗?

A: 这里的数据是可以通过C#脚本来获取的,在UnityEditor命名空间中有一个UnityStats类。里面包括了这些数据。

不过需要注意的是,由于UnityStats类定义在UnityEditor命名空间内,所以只能在Editor中访问。
0x02 Profiler
Q: 现在开发那边给的反馈是现在内存占用很高,会造成闪退。排除了Unity Profiler能够统计到的一些资源的问题,现在最有可能就是DLL和三方插件的问题,但是现在这部分的内存统计不到。所以给了我这边一个需求,问有没有办法统计到。
A: 这部分你需要对应平台的工具来进行分析。这是一个比较麻烦的事情,例如在iOS上你可能需要用到xcode和instrument来分析。安卓需要android studio或者adb的一些指令来分析。你可以参考一下这份文档:https://unity3d.com/cn/learn/tutorials/topics/best-practices/android-memory-management
A: 闪退的可能性有很多,你现在给的信息太少,不太能给你什么建议。你最好自己测一下,看看所谓“内存占用很高”这个结论是怎么测出来的。是PSS高还是单纯的mono高,不然没法解决。(北京-jadiek)
A: 收集下crash可以确定很多问题。比如oom 你可以确定下crash的机型内存是多少的,3g机型一般不会,不然你2g机型就会很频繁的必现。
你的打包模式和项目实现方案也可能会对你的内存产生影响,比如c#代码为主使用il2cpp打包 那么很可能你的代码片段的内存就有几十兆。比如你的场景和批使用静态和批方案 可能你的scenemem当中的mesh就有几十兆。比如你的内存泄漏,可能会导致你的mono会持续增长上百兆。(北京-哎呀)
0x03 Lightmapping
Q: 请问下如果只有一个灯并且开启了shadowmask来烘焙场景,生成的shadowmask都是4个通道的贴图。这个比较浪费,有什么优化的方法吗?unity2017. 谢谢。
A: 可以将texture type设置为single channel,在2018中可以选择保留的channel,选择Red即可,这样就生成了r8格式的texture,内存开销会变成之前的1/4。
0x04 Git&Unity
Q: 在用Git管理Unity版本的时候是如何处理二进制文件的呢?
目前Git提供的LFS功能是否能满足实际需要呢?
实在查阅不到相关资料……
A: 关于git lfs和Unity工程里的大文件的处理是有一些讨论的。
可以查看这里:https://www.reddit.com/r/gamedev/comments/6mc1az/%20lets_talk_about_unity_git_best_practices_and/
gitlab应该也是有这套api的。
适合unity用的.gitattributes文件,可以查看这个页面维护的内容:
https://gist.github.com/nemotoo/b8a1c3a0f1225bb9231979f389fd4f3f
可以再配合unity的smart merge。效果会比较好。
设置步骤可以查看这个页面:
https://robots.thoughtbot.com/how-to-git-with-unity
0x05 Resource
Q: 请问一下工程打包后,包里会有一些后缀为resS的文件。想问下这个文件的内容是什么?谢谢

A: resS后缀的文件主要是texture的二进制数据。如果是和场景有关的resS文件,比如level0.resS,这种一般是由于在Lighting窗口中设置了Skybox Material。
0x06 Shader Graph
Q: shader graph 这个面板跟着鼠标动 甩不掉 是bug吗?

A: 嗯。这的确是一个bug:https://issuetracker.unity3d.com/issues/blackboard-follows-mouse-after-changing-mode
不过这个Bug在2018.2.0b9应该修掉了。可以用这个版本测试下。
0x07 后记
好了,以上就是想和大家分享的几个在群里讨论的小问题。
再次,欢迎大家加入我们这个讨论技术的官方干货群,交流分享呀。
Unity官方社区交流群:629212643
巧妙设置Texture Type,将ShadowMask内存占用变成之前的1/4的更多相关文章
- Unity3D–Texture图片空间和内存占用分析(转载)
原地址:http://www.unity蛮牛.com/home.php?mod=space&uid=1801&do=blog&id=756 Texture图片空间和内存占用分析 ...
- Unity3D–Texture图片空间和内存占用分析
Texture图片空间和内存占用分析.由于U3D并没有很好的诠释对于图片的处理方式,所以很多人一直对于图集的大小和内存的占用情况都不了解.在此对于U3D的图片问题做一个实际数据的分析.此前的项目都会存 ...
- PHPExcel解决内存占用过大问题-设置单元格对象缓存
PHPExcel解决内存占用过大问题-设置单元格对象缓存 PHPExcel是一个很强大的处理Excel的PHP开源类,但是很大的一个问题就是它占用内存太大,从1.7.3开始,它支持设置cell的缓存方 ...
- (转)aix非计算内存 占用过高 案例一则
原文:http://www.talkwithtrend.com/Article/28621 两台小型机组成的RAC环境,在用topas查看资源使用情况时,发现一台机器的非计算内存占用过高: MEMOR ...
- 使用诊断工具观察 Microsoft.Extensions.DependencyInjection 2.x 版本的内存占用
目录 准备工作 大量接口与实现类的生成 elasticsearch+kibana+apm asp.net core 应用 请求与快照 Kibana 上的请求记录 请求耗时的分析 请求内存的分析 第2次 ...
- Microsoft.Extensions.DependencyInjection 之二:使用诊断工具观察内存占用
目录 准备工作 大量接口与实现类的生成 elasticsearch+kibana+apm asp.net core 应用 请求与快照 Kibana 上的请求记录 请求耗时的分析 请求内存的分析 第2次 ...
- 实操 | 内存占用减少高达90%,还不用升级硬件?没错,这篇文章教你妙用Pandas轻松处理大规模数据
注:Pandas(Python Data Analysis Library) 是基于 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.此外,Pandas 纳入了大量库和一些标准的数据模型 ...
- Java线上应用故障排查之二:高内存占用
搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGen space 2.java.lang.OutOfMemoryError: Java ...
- 关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析
原文:关于Android中图片大小.内存占用与drawable文件夹关系的研究与分析 相关: Android drawable微技巧,你所不知道的drawable的那些细节 经常会有朋友问我这个问题: ...
随机推荐
- 前端angular使用crypto-js进行加密
首先下载大包 npm install crypto-js 然后下载ts版本的包 npm install --save @types/crypto-js 接着在头部导入crypto-js模块 impor ...
- 洛谷 P2678 & [NOIP2015提高组] 跳石头
题目链接 https://www.luogu.org/problemnew/show/P2678 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布 ...
- 设置SecureCRT的背景色和文字颜色方案
一.对于临时设置,可以如下操作: 首先options -- session - appearance 此处可以设置临时的窗口背景,字体颜色,大小等等,为什么说是临时,是因为只要你关闭连接后,又会恢复. ...
- kettle基础概念的学习
参考书籍:Pentaho Kettle Solutions中文版.由于最近不断的使用kettle,随着不断深入使用,遇到的问题越来越多,发现脑子那点货根本不够用,所以根据阅读把一些概念记录一下,方便自 ...
- Servlet校验密码之Mariadb篇
Servlet校验密码之Mariadb篇 先放图-- 数据库: 效果图: 整体来说与上一篇差距不大,这次主要是采用数据库来进行校验,我使用的是Mariadb,安装与配置不用我说 主要有一点,导入连接器 ...
- win10家庭版升级为专业版(win10专业版激活方法)
替换专业版密钥 1.在win10家庭版桌面上鼠标右键点击[此电脑]-[属性],点击右下角的[更改产品密钥] 2.也可以点击开始-设置-更新和安全-激活-[更改产品密钥] 3.输入要升级的win10版本 ...
- disconf使用小结
disconf使用小结 目前我们公司用的分布式配置中心是disconf,对于普通的spring项目集成还是比较方便,主要功能点分布式配置还有配置的动态更新通知 安装disconf服务端 参考地址htt ...
- hbase 问题整理
阅读本文可以带着下面问题:1.HBase遇到问题,可以从几方面解决问题?2.HBase个别请求为什么很慢?你认为是什么原因?3.客户端读写请求为什么大量出错?该从哪方面来分析?4.大量服务端excep ...
- Vue+localstrong登录注册,并保持登录状态
在router.js中添加meta区分 比如登录注册页面,不需要登录即可进入,那么我们把meta中的isLogin标志设置为false { //登录 path: '/login', component ...
- Shell编程-控制结构 | 基础篇
if-then-else分支结构 if-then-else是一种基于条件测试结果的流程控制结构.如果测试结果为真,则执行控制结构中相应的命令列表:否则将进行另外一个条件测试或者退出该控制结构. if- ...