文章目录

  • 一、前言
  • 二、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

Unity 场景窗口分辨率 unity游戏分辨率怎么调_unity

2、Game窗口分辨率设置

Game视图标签下面点击会下拉出分辨率列表,Unity已经将常用的分辨率内置在列表中,我们也可以点+号添加自定义分辨率。

Unity 场景窗口分辨率 unity游戏分辨率怎么调_Unity 场景窗口分辨率_02

3、Scene窗口中3D图标的隐藏

如下,好大一个3D图标在Scene视图中,挡住了我们的Cube,很碍眼

Unity 场景窗口分辨率 unity游戏分辨率怎么调_build_03


只需要把Scen视图上的Gizmos中的3D Icons的勾选去掉即可

Unity 场景窗口分辨率 unity游戏分辨率怎么调_editor_04


不过还是有个小小的摄像机icon,我们可以直接点击Gizmos按钮,这样连摄像机小icon也不会显示了

Unity 场景窗口分辨率 unity游戏分辨率怎么调_build_05

4、摄像机与Scene窗口视角的相互同步

4.1、摄像机视角同步给Scene窗口视角

选中摄像机,点击菜单GameObject - Align View to Selected,此时,选中的Scene窗口就会以摄像机视角为准

Unity 场景窗口分辨率 unity游戏分辨率怎么调_editor_06

4.2、Scene窗口视角同步给摄像机视角

选中摄像机,点击菜单GameObject - Align With View,此时,选中的摄像机就会以Scene窗口视角为准

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_07

5、Inspector组件的收起与展开

Collapse All Components收起所有的ComponentExpand All Components展开所有的Component

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_08

6、Hierarchy窗口树节点的收起与展开

选中某个节点,按Alt+向左收起所有节点,按Alt+向右展开所有节点。

Unity 场景窗口分辨率 unity游戏分辨率怎么调_editor_09

7、Project窗口筛选过滤

根据文件类型进行筛选过滤,方便快速查找文件

Unity 场景窗口分辨率 unity游戏分辨率怎么调_unity_10

8、Console日志窗口

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_11


窗口中有几个按钮

Collapse:收纳日志,会把相同的输出收纳起来

Clear on PlayUnity运行的时候,会清理掉日志

Error Pause:当有Error输出的时候,Unity暂停运行

=经常有策划或美术在用unity的时候不小心点了Error Pause,然后运行的时候出现了Error日志,Unity暂停了运行,然后很吃惊地喊:“啊,我的unity卡死了”

9、PackageManager窗口

Unity 2018.1版本开始引入了包管理器Package Manager窗口,点击菜单Window - Package Manager即可打开

Unity 场景窗口分辨率 unity游戏分辨率怎么调_unity_12


通过Package Manager,我们可以安装、移除或更新Unity很多非常棒的插件包,比如Shader Graph、Timeline、ProBuilder、Android Logcat等。

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_13


如果搜索的某个插件包找不到,先确保过滤器这里选的是Unity Registry

Unity 场景窗口分辨率 unity游戏分辨率怎么调_editor_14

10、Player Settings窗口

很多打包相关的设置在Player Settings窗口中,下文提到的很多设置都与这个窗口有关。

点击菜单:File - Build Settings,打开Build Settings窗口,

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_15


再点击Player Settings

Unity 场景窗口分辨率 unity游戏分辨率怎么调_unity_16


即可打开Player Settings窗口,其实它是Project Settings窗口中的Player分页窗

Unity 场景窗口分辨率 unity游戏分辨率怎么调_build_17

三、Player Settings窗口常用设置

1、设置游戏名字

Product Name右边即可填写游戏名字

Unity 场景窗口分辨率 unity游戏分辨率怎么调_Unity 场景窗口分辨率_18


通过代码设置:

UnityEditor.PlayerSettings.productName = "testgame";
2、包名(Bundle ID)设置

打开Other Settings下拉页,在Package Name右边即可填写包名(Bundle ID),一般格式是com.公司名.游戏名

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_19


代码方式设置:

// Unity5.x之前
UnityEditor.PlayerSettings.bundleIdentifie = "com.linxinfa.mygame";
// Unity2017以后
UnityEditor.PlayerSettings.applicationIdentifier = "com.linxinfa.mygame";
3、设置版本号

打开Other Settings下拉页,在Version*Bundle Version Code右边即可填写版本号

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_20


建议用代码设置:

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

Unity 场景窗口分辨率 unity游戏分辨率怎么调_editor_21


代码方式设置:

PlayerSettings.SetIconsForTargetGroup(BuildTargetGroup platform,Texture2D[] icons);

注意第二个参数icons数组,Android一定要传6个图标,iOS一定要传15个图标,否则接口调用无效。
Unity用代码设置游戏icon,可以参见我这篇博客:

4、高清游戏图标压缩格式设置

参见我这篇博客:
Unity游戏icon压缩格式设置(解决图标不清晰问题):

5、设置闪屏

打开Splash Image下拉页,即可设置游戏闪屏

Unity 场景窗口分辨率 unity游戏分辨率怎么调_build_22


Unity用代码设置Splash Screen闪屏,参见我这篇博客:

6、横竖屏设置

打开Resolution and Pressentation下拉页,在Default Orientation*右边即可选择默认横屏竖屏

Unity 场景窗口分辨率 unity游戏分辨率怎么调_Unity 场景窗口分辨率_23


代码方式设置:

Screen.orientation = ScreenOrientation.LandscapeRight;
7、设置宏定义

打开Other Settings下拉页,在Scripting Define Symbols下即可设置宏定义,多个宏用分号隔开

Unity 场景窗口分辨率 unity游戏分辨率怎么调_build_24

#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类型

Unity 场景窗口分辨率 unity游戏分辨率怎么调_Unity 场景窗口分辨率_25


上图中ARM64不可勾选是因为Scripting Backend用的是Mono,如果想支持ARM64,则Scripting Backend必须选择IL2CPP

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_26

9、设置多线程渲染

打开Other Settings下拉页,勾选Multithread Rendering即可支持多线程渲染

Unity 场景窗口分辨率 unity游戏分辨率怎么调_build_27

关于多线程渲染:https://zhuanlan.zhihu.com/p/44116722

10、设置锁帧率

然后点击Quality页面,将VSync Count设置成 Don't Sync,如果不设置成Don't Sync,则及时代码中锁定了帧率也不会生效。

Unity 场景窗口分辨率 unity游戏分辨率怎么调_unity_28


然后再在代码中设置帧率:

Application.targetFrameRate = 30;
11、设置固定时间步长(物理更新)

点击Time页面,在Fixed Timestep右边即可设置物理更新的固定时间步长

Unity 场景窗口分辨率 unity游戏分辨率怎么调_unity_29


对于稳定的物理模拟来说,固定时间步长 (fixed time stepping) 非常重要,物理计算必须独立于游戏的帧速率进行。诸如碰撞检测和刚体 (rigidbody) 移动这样的物理计算是在独立于帧速率的离散固定时间步长中进行。

代码方式设置:

Time.fixedDeltaTime = 0.02f;
12、设置层的物理碰撞

点击Physics页面,在Layer Collision Matrix下即可勾选不同层与层之间的物理碰撞,对于不需要计算物理碰撞的层,可以把去掉,提升性能。

Unity 场景窗口分辨率 unity游戏分辨率怎么调_unity_30

13、设置Layer层

点击Tags and Layers页面,打开Layers下拉页,即可编辑和添加新的Layer

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_31

14、设置Tags

点击Tags and Layers页面,打开Tags下拉页,即可编辑和添加新的Tags

Unity 场景窗口分辨率 unity游戏分辨率怎么调_editor_32

15、设置引擎代码裁剪

这个只有苹果版的Unity才有。

Player Settings窗口的Other Settings下拉页中,有个Strip Engine Code,勾选上之后,打包时会对代码进行裁剪,不打包没有用到的代码,比如一个2D游戏没有用到Rigidbody等物理类的组件,那么引擎的Rigidbody相关的代码会被裁剪掉,从而缩小包体。

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_33


不过,此功能慎用,因为我栽过跟头,可参见我之前这篇博客:

《Unity通过AssetBundle加载资源实例化在iOS上崩问题的解决(Strip导致)》:

四、其他设置

1、保存文件提示设置

打开Preferences窗口,菜单:Edit - Preferences,打开General页,勾选Verify Saving Assets

Unity 场景窗口分辨率 unity游戏分辨率怎么调_editor_34

这样在Unity编辑器中按ctrl+s保存的时候,就会弹出一个询问框询问是否要保存被修改的文件。

我们可以选择性地进行保存

Unity 场景窗口分辨率 unity游戏分辨率怎么调_editor_35

2、下载和配置Android Build Support

推荐通过Unity Hub安装Android Build Support

Unity 场景窗口分辨率 unity游戏分辨率怎么调_Unity 场景窗口分辨率_36

3、设置JDK、Android SDK、NDK、Gradle

通过Unity Hub安装Android Build Support,下载的JDK、Android SDK、NDK、Gradle都在下图中的目录中:Unity安装目录\Editor\Data\PlaybackEngines\AndroidPlayer

Unity 场景窗口分辨率 unity游戏分辨率怎么调_unity_37


点击菜单Edit - Preferences...,打开Preferences窗口,选择External Tools分页,即可设置JDK、Android SDK、NDK、Gradle,默认都打勾即可。

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_38

五、代码常用

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"));

Unity 场景窗口分辨率 unity游戏分辨率怎么调_setting_39


十六进制颜色码表

https://www.sioe.cn/yingyong/yanse-rgb-16/

3、捕获Unity日志并上传到服务器

参见我这篇博客:

4、截屏功能

参见我这篇博客:

5、Unity文件操作路径

参见我这篇博客: