文章目录
- 一、前言
- 二、Unity常用窗口
- 1、Unity六大窗口
- 2、Game窗口分辨率设置
- 3、Scene窗口中3D图标的隐藏
- 4、摄像机与Scene窗口视角的相互同步
- 5、Inspector组件的收起与展开
- 6、Hierarchy窗口树节点的收起与展开
- 7、Project窗口筛选过滤
- 8、Console日志窗口
- 9、PackageManager窗口
- 10、Player Settings窗口
- 三、Player Settings窗口常用设置
- 1、设置游戏名字
- 2、包名(Bundle ID)设置
- 3、设置版本号
- 3、设置游戏icon
- 4、高清游戏图标压缩格式设置
- 5、设置闪屏
- 6、横竖屏设置
- 7、设置宏定义
- 8、平台CPU类型设置
- 9、设置多线程渲染
- 10、设置锁帧率
- 11、设置固定时间步长(物理更新)
- 12、设置层的物理碰撞
- 13、设置Layer层
- 14、设置Tags
- 15、设置引擎代码裁剪
- 四、其他设置
- 1、保存文件提示设置
- 2、下载和配置Android Build Support
- 3、设置JDK、Android SDK、NDK、Gradle
- 五、代码常用
- 1、帧率FPS
- 2、Debug.Log输出带颜色的日志
- 3、捕获Unity日志并上传到服务器
- 4、截屏功能
- 5、Unity文件操作路径
一、前言
之前写了一篇关于Unity
常用的小技巧与设置,现在是Unity2020
,有部分小调整,专门写一篇关于Unity2020
的吧。
二、Unity常用窗口
1、Unity六大窗口
Unity
最主要的六大窗口(Scene、Game、Inspector、Hierarchy、Project、Console
)收录在Window - General
菜单中,相对应的快捷键可以记一下,至少记住Console
窗口的快捷键Ctrl+Shift+C
。
2、Game窗口分辨率设置
Game
视图标签下面点击会下拉出分辨率列表,Unity
已经将常用的分辨率内置在列表中,我们也可以点+
号添加自定义分辨率。
3、Scene窗口中3D图标的隐藏
如下,好大一个3D
图标在Scene
视图中,挡住了我们的Cube
,很碍眼
只需要把Scen
视图上的Gizmos
中的3D Icons
的勾选去掉即可
不过还是有个小小的摄像机icon
,我们可以直接点击Gizmos
按钮,这样连摄像机小icon
也不会显示了
4、摄像机与Scene窗口视角的相互同步
4.1、摄像机视角同步给Scene窗口视角
选中摄像机,点击菜单GameObject - Align View to Selected
,此时,选中的Scene
窗口就会以摄像机视角为准
4.2、Scene窗口视角同步给摄像机视角
选中摄像机,点击菜单GameObject - Align With View
,此时,选中的摄像机就会以Scene
窗口视角为准
5、Inspector组件的收起与展开
Collapse All Components
收起所有的Component
Expand All Components
展开所有的Component
6、Hierarchy窗口树节点的收起与展开
选中某个节点,按Alt+向左
收起所有节点,按Alt+向右
展开所有节点。
7、Project窗口筛选过滤
根据文件类型进行筛选过滤,方便快速查找文件
8、Console日志窗口
窗口中有几个按钮
Collapse
:收纳日志,会把相同的输出收纳起来
Clear on Play
:Unity
运行的时候,会清理掉日志
Error Pause
:当有Error
输出的时候,Unity
暂停运行
=经常有策划或美术在用unity的时候不小心点了Error Pause,然后运行的时候出现了Error日志,Unity暂停了运行,然后很吃惊地喊:“啊,我的unity卡死了”
9、PackageManager窗口
Unity 2018.1
版本开始引入了包管理器Package Manager
窗口,点击菜单Window - Package Manager
即可打开
通过Package Manager
,我们可以安装、移除或更新Unity
很多非常棒的插件包,比如Shader Graph、Timeline、ProBuilder、Android Logcat
等。
如果搜索的某个插件包找不到,先确保过滤器这里选的是Unity Registry
10、Player Settings窗口
很多打包相关的设置在Player Settings
窗口中,下文提到的很多设置都与这个窗口有关。
点击菜单:File - Build Settings
,打开Build Settings
窗口,
再点击Player Settings
,
即可打开Player Settings
窗口,其实它是Project Settings
窗口中的Player
分页窗
三、Player Settings窗口常用设置
1、设置游戏名字
在Product Name
右边即可填写游戏名字
通过代码设置:
UnityEditor.PlayerSettings.productName = "testgame";
2、包名(Bundle ID)设置
打开Other Settings
下拉页,在Package Name
右边即可填写包名(Bundle ID
),一般格式是com.公司名.游戏名
代码方式设置:
// Unity5.x之前
UnityEditor.PlayerSettings.bundleIdentifie = "com.linxinfa.mygame";
// Unity2017以后
UnityEditor.PlayerSettings.applicationIdentifier = "com.linxinfa.mygame";
3、设置版本号
打开Other Settings
下拉页,在Version*
和Bundle Version Code
右边即可填写版本号
建议用代码设置:
UnityEditor.PlayerSettings.bundleVersion = "1.0.0";
#if UNITY_ANDROID
UnityEditor.PlayerSettings.Android.bundleVersionCode = 1;
#elif UNITY_IOS
UnityEditor.PlayerSettings.iOS.buildNumber = "1";
#endif
关于Bundle Identifier、Bundle Version、Bundle Version Code区别,可参见我这篇文章:
3、设置游戏icon
打开Icon
下拉页,即可设置游戏icon
代码方式设置:
PlayerSettings.SetIconsForTargetGroup(BuildTargetGroup platform,Texture2D[] icons);
注意第二个参数icons数组,Android一定要传6个图标,iOS一定要传15个图标,否则接口调用无效。
Unity用代码设置游戏icon,可以参见我这篇博客:
4、高清游戏图标压缩格式设置
参见我这篇博客:
Unity游戏icon压缩格式设置(解决图标不清晰问题):
5、设置闪屏
打开Splash Image
下拉页,即可设置游戏闪屏
Unity
用代码设置Splash Screen闪屏,参见我这篇博客:
6、横竖屏设置
打开Resolution and Pressentation
下拉页,在Default Orientation*
右边即可选择默认横屏竖屏
代码方式设置:
Screen.orientation = ScreenOrientation.LandscapeRight;
7、设置宏定义
打开Other Settings
下拉页,在Scripting Define Symbols
下即可设置宏定义,多个宏用分号隔开
#if MY_DEFINE1
Debug.Log("Hello MY_DEFINE1");
#endif
#if MY_DEFINE2
Debug.Log("Hello MY_DEFINE2");
#endif
8、平台CPU类型设置
打开Other Settings
下拉页,在Target Architectures
下即可勾选发布平台支持的CPU
类型
上图中ARM64
不可勾选是因为Scripting Backend
用的是Mono
,如果想支持ARM64
,则Scripting Backend
必须选择IL2CPP
9、设置多线程渲染
打开Other Settings
下拉页,勾选Multithread Rendering
即可支持多线程渲染
10、设置锁帧率
然后点击Quality
页面,将VSync Count
设置成 Don't Sync
,如果不设置成Don't Sync
,则及时代码中锁定了帧率也不会生效。
然后再在代码中设置帧率:
Application.targetFrameRate = 30;
11、设置固定时间步长(物理更新)
点击Time
页面,在Fixed Timestep
右边即可设置物理更新的固定时间步长
对于稳定的物理模拟来说,固定时间步长 (fixed time stepping
) 非常重要,物理计算必须独立于游戏的帧速率进行。诸如碰撞检测和刚体 (rigidbody
) 移动这样的物理计算是在独立于帧速率的离散固定时间步长中进行。
代码方式设置:
Time.fixedDeltaTime = 0.02f;
12、设置层的物理碰撞
点击Physics
页面,在Layer Collision Matrix
下即可勾选不同层与层之间的物理碰撞,对于不需要计算物理碰撞的层,可以把√
去掉,提升性能。
13、设置Layer层
点击Tags and Layers
页面,打开Layers
下拉页,即可编辑和添加新的Layer
层
14、设置Tags
点击Tags and Layers
页面,打开Tags
下拉页,即可编辑和添加新的Tags
15、设置引擎代码裁剪
这个只有苹果版的Unity
才有。
在Player Settings
窗口的Other Settings
下拉页中,有个Strip Engine Code
,勾选上之后,打包时会对代码进行裁剪,不打包没有用到的代码,比如一个2D
游戏没有用到Rigidbody
等物理类的组件,那么引擎的Rigidbody
相关的代码会被裁剪掉,从而缩小包体。
不过,此功能慎用,因为我栽过跟头,可参见我之前这篇博客:
《Unity通过AssetBundle加载资源实例化在iOS上崩问题的解决(Strip导致)》:
四、其他设置
1、保存文件提示设置
打开Preferences
窗口,菜单:Edit - Preferences
,打开General
页,勾选Verify Saving Assets
这样在Unity
编辑器中按ctrl+s
保存的时候,就会弹出一个询问框询问是否要保存被修改的文件。
我们可以选择性地进行保存
2、下载和配置Android Build Support
推荐通过Unity Hub
安装Android Build Support
3、设置JDK、Android SDK、NDK、Gradle
通过Unity Hub
安装Android Build Support
,下载的JDK、Android SDK、NDK、Gradle
都在下图中的目录中:Unity安装目录\Editor\Data\PlaybackEngines\AndroidPlayer
点击菜单Edit - Preferences...
,打开Preferences
窗口,选择External Tools
分页,即可设置JDK、Android SDK、NDK、Gradle
,默认都打勾即可。
五、代码常用
1、帧率FPS
var fps = 1.0f / Time.smoothDeltaTime();
2、Debug.Log输出带颜色的日志
Debug.Log(string.Format("<color=#ff0000>{0}</color>", "hello world"));
Debug.Log(string.Format("<color=yellow>{0}</color>", "welcome to unity"));
十六进制颜色码表
https://www.sioe.cn/yingyong/yanse-rgb-16/
3、捕获Unity日志并上传到服务器
参见我这篇博客:
4、截屏功能
参见我这篇博客:
5、Unity文件操作路径
参见我这篇博客: