Unity3d 周分享(13期 2019.3.23 )

本文汇总了Unity3D开发中的实用技巧和优化方法,包括异步处理、构建速度优化、SpriteAtlas打包、Android路径获取、iOS调试配置、依赖关系计算、光照优化以及Profiler连接等。此外,还讨论了纹理尺寸限制、Shader实现、游戏对象查找、场景转换时间分析等,提供了一定的性能提升建议和开发辅助工具。
摘要由CSDN通过智能技术生成

选自过去1~2周 自己所看到外文内容:https://twitter.com/unity3d 和各种其他博客来源吧

            csdn 的东西, 不想吐槽, 笔记的拷贝  还需要重新传图片,  代码排版等问题, 垃圾~

 

1、 看到 “Unity Asynchronous完全理解学习小组” 视频的笔记

参考视频和文章

异步处理的基础知识

特点

  • 处理不会立即返回结果
  • 您无需等待功能完成即可执行以下操作
  • 异步处理不一定是多线程的
  • 协同程序是单线程和异步的
  • 有并发执行和并行执行,同时CPU共享,每个CPU实现并行
  • 处理结束时发出消息
  • 收到邮件的收件人会做一些事情
  • 发出一条OnNext或Error消息

问题点

  • 处理执行结果
  • 串行/并行处理
  • 错误处理
  • 取消执行
  • 控制执行上下文(多线程控制)
  • 写愚蠢是无法控制的

错误处理

  • 将其发布在日志上并完成
  • 要重试
  • 回到另一个过程
  • 放弃处理
  • 抓住失败

 

 

 

2、 [Unity]我在iOS中将架构从Universal更改为ARM 64,并检查了可以减少多少Xcode构建时间

 

Architecture

构建時間

任务数

Universal

240 秒

291

ARM64

140 秒

161

*任务数量是Xcode顶部显示的数字

 

 

 

【Unity】我尝试通过减少Android上的Target Architectures来缩短构建时间

  • Unity版本:2018.3.7f1
  • 脚本编写后端:IL2CPP
  • 构建系统:Gradle
  • 使用空Unity项目进行验证

Architecture

构建時間

ARMv7 + x86

55 秒

只有 ARMv7

71 秒

 

 

 

[Unity]我试着看看通过减少Android上的Target Architectures可以减少多少应用程序容量

  • Unity版本:2018.3.7f1
  • 脚本编写后端:IL2CPP
  • 构建系统:Gradle
  • 使用空Unity项目进行验证

Architecture

容量

ARMv7 + x86

12.7 MB

只有 ARMv7

6.63 MB

 

 

 

 

 

 

 

3、 [Unity] “SpriteAtlasUtility.PackAllAtlases” 可以打包指定的SpriteAtlas

using UnityEditor; using UnityEditor.U2D; using UnityEngine.U2D; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var path = "【SpriteAtlas的路径】"; var atlas = AssetDatabase.LoadAssetAtPath<SpriteAtlas>( path ); var atlases = new []{ atlas }; SpriteAtlasUtility.PackAtlases( atlases, BuildTarget.Android ); } }

https://docs.unity3d.com/2018.2/Documentation/ScriptReference/U2D.SpriteAtlasUtility.PackAtlases.html

 

[Unity]“SpriteAtlasUtility.PackAllAtlases”可以打包Unity项目中的所有SpriteAtlas

using UnityEditor; using UnityEditor.U2D; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { SpriteAtlasUtility.PackAllAtlases( BuildTarget.Android ); } }

https://docs.unity3d.com/2018.2/Documentation/ScriptReference/U2D.SpriteAtlasUtility.PackAllAtlases.html

 

 

 

4、 [Unity] Unity 2018.1 新功能在 iOS / Android 上使用 “GUIUtility.systemCopyBuffer”,可以将字符串复制到剪贴板

 

using UnityEngine; public class Example : MonoBehaviour { private void Awake() { GUIUtility.systemCopyBuffer = "皮卡丘"; } }

 

 

 

5、[Unity] Unity 2018.3新功能“Application.consoleLogPath”可以获取控制台日志的输出目标路径

using UnityEngine; public class Test : MonoBehaviour { private void Awake() {; Debug.Log( Application.consoleLogPath ); } }

平台

文字列

Windows编辑器

C:/Users/【用户名称】/AppData/Local/Unity/Editor/Editor.log

Android的

【空字符串】

iOS版

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值