unity版本2018.4.3f1
1、Icon
Application icons | Main icons for your app (也就是手机 主界面看到的图标) |
Spotlight icons | Spotlight search results for your app (被搜索到时的图标) |
Settings icons | Device’s main Settings page (设置页面的图标) |
Notification icons | Notifications sent from your app (在手机上方显示推送消息时的图标) |
Marketing icons | App Store (在苹果应用商店的图标) |
其中@2x,@3x表示2倍图和3倍图,倍数说的是像素分辨率的倍数
例如20x20是@1x,那么@2x就是40x40
例如,iPad2 是768 x 1024,iPad Retina 是1536 x 2048,开发时都按 768 * 1024 操作。但实际上两者有一倍差异。为了达到最佳效果,使用的图片大小不一样。这时候就用同一个名称,但 Retina 的图加上 @2x 后缀。系统加载图片时,在 iPad2 上会加载 @1x 的图在 1536 * 2048 的设备上,会加载 @2x 的。@3x 现在用于 iPhone 6/6+ 上。
附带一提:iOS8渲染操作中使用前缀带有@1x、@2x 和@3x 的测试图像,代码会优先载入3x 图像。@2x图像不被加载。使用图像文件和XCAsset均不行
2、Resolution and presentation
这一项主要是对旋转方向,是否全屏,状态栏是否隐藏,是否显示一个等待圈等基本的设置,这个设置其实就是修改的 xcode中的info.plist文件,
Resolution Scaling:屏幕分辨率缩放模式
disabled:不使用本机的分辨率,通常使用自己的设计分辨率
Fixed targetDPI:固定的dpi,来显示游戏画面
Orientation:app的旋转方向
Requires Fullscreen:全屏运行
Status Bar:手机最上面的状态栏的设置
Status bar Hidden :隐藏状态栏
Status bar style : 状态栏的样式
Disable Depth and Stencil这个选项:
这个意思是说是否禁用深度缓存和模板缓存,这个选项默认是不禁用,如果shader中没用到深度和模板缓存,禁用这个选项可以减少GPU/CPU的一些工作量,节省一点点内存,或只是2D游戏,并且不包含模板遮罩,也可以禁用这个选项
Show Loading Indicator:是否展示等待转圈
3、splash image:游戏启动时候的闪屏设置
Virtual Reality Splash Image:Vr的app的闪屏设置
show Splash Screen:是否开启闪屏
Animation:logo的动画方式
show Unity logo:是否显示unity 的logo
Logos:设置启动时的一系列logo
Virtual Reality Splash Image,只用于开启了VR支持的情况,在加载第一个场景时出现,图像的尺寸没有什么特别的要求
Splash Screen,是刚加载初始化时使用,如果是Pro版,可以自己指定。如果不是,则使用Unity的默认splash图。
Spash Style指设置Splash的样式,包括Dark on light 和light on dark
Animation是指Splash出现时的动画效果
Show Unity logo,是指在splash屏下是否出现unity的logo标志,Pro版可以不选
DrawMode指unityLogo出现的位置,Unity logo below指在splash出现的过程中Unity logo始终在下面出现,
All Sequential指,按顺序出现,如果勾选了Show Unity logo,Unity Logo会第一个出现。
Logos可以添加多个图片,还可以设置每个图片出现的时间,这个功能主要用于出现多个spash屏时,设置,图片的格式要求是sprite2d,
Background:是Splash阶段的背景,Overlay Opacity指背景叠加的透明度,BackgroundImage是指背景图片,尺寸会充满全屏,Alternate Protrait Image,用于portrait 竖屏模式下的背景,如果不设置都使用BackgroundImage
iPhone Launch Screen:
Launch Screen 是iOS8.0以后新增加的一个使用XIB文件动态生成Launch image的功能。
Launch screen type:是指Launch screen的类型,分为如下几类:
None:不生成Launch Screen图,只有Launch Images图
Default:使用默认的设置,和Launch images 类似,会在xcode根目录生成一个LaunchScreen-iPhoneLandscape.png和LaunchScreen-iPhonePortrait.png图
Image with background, relative size:指的是相对于屏幕尺寸的一个相对比例显示,会在xcode要目录下生成LaunchScreen-iPhone.xib用于描述填充比(Fill percentage)和颜色(color),和LaunchScreen-iPhoneLandscape.png和LaunchScreen-iPhonePortrait.png图
Image with background, constant size:指的是不随屏幕大小比例而变化,而是使用图像本身的实际大小显示,
也是会在xcode要目录下生成LaunchScreen-iPhone.xib用于描述填充比(Fill percentage)和颜色(color),和LaunchScreen-iPhoneLandscape.png和LaunchScreen-iPhonePortrait.png图
Custom Xib:是指可以自定义xib文件,描述图片的显示方式
Legacy Launch Images:是io7以前的设置方式,此种设置方式已经过期,IOS8以后可以用Launch Screen方法,这样可以减小资源数量,减小包大小。
这几种的显示顺序是:当游戏启动时,
先显示IOS层面的Launch Screen,
然后进入Splash屏阶段,此阶段会设置多个闪屏或开启unty Logo,设置Background背景融合
Debugging and Crash Reporting
Enable Internal Profiler:开启一个内部的Profiler,将收集到的性能信息打印到控制台,这个功能已经不建议使用了
On .Net UnhandledException:分为Crash和Silent Exit,分别指.net出现异常后生成Crash Reporter报告上报给苹果和出现异常时什么也不错,直接忽略
Log ObjC uncaught exceptions:些值到应的是Xcode工程中CrashReport.h中的ENABLE_OBJC_UNCAUGHT_EXCEPTION_HANDLER宏定义,如果此值是1,则开启对CrashReporter.mm中的InitObjCUEHandler方法的调用
static void InitObjCUEHandler()
{
// Crash reporter sets its own handler, so we have to save it and call it manually
gsCrashReporterUEHandler = NSGetUncaughtExceptionHandler();
NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
}
Enable Crash Report API: 通过CrashReport API 捕捉 Crash
这几种Debug和Crash报告的方法可以灵活运用,更好的帮助定位bug.
Other Settings
渲染相关:
Color Space:是指选择颜色空间,分为Gamma空间和Linear线性空间,这个会单独拿出文章来讲
Auto Graphics APIs:选择使用哪个图形API,可以选择Metal,GLES2和GLES3,ios下默认是Metal
Color Gamut:用于渲染的色域,最近iOS设备的宽色域显示时,使用DisplayP3充分利用显示功能
Multithreaded Rendering:开启多线程渲染
static batching:指在build阶段使用静态合批
Dynamic batching:指在build阶段使用动态合批
GPU Skinning:将允许符合条件平台使用GPU Skinning,平台包括Dx11或GLES3
Graphics Jobs:启用后可将Jobs从主线程迁移到工作线程从而获得极大的渲染性能提升,注意这个还是在实验性的,慎用
Virtual Reality Supported:开启之后,可以自行添加VR的SDK如GVRSDK,当Build时会在Xcode中加入pod项目,添加VR相关的SDK
Lightmap Streaming Enabled:lightmap 使用开关
Enable Frame Timing Stats:启用这个选项来收集CPU/GPU帧时间统计数据
Bundle Identifier:指在Apple账号平台设置的provisioning certificate的bundle 名称
Version:对应的是XCode中plist的CFBundleShortVersionString,指发布版本号,提交审核时需要的
Build:对应的是CFBundleVersion,指当前发布版本的内部build版本,这个值每次重新提审都要递增修改,否则会提交失败
Automatically Sign:是否使用自动签名,如果选择此项,需要填写Team ID,TeamID也是苹果开发者账号后台设置的,会自动生成provisioning profile
Scripting Runtime Version:指C#脚本的运行时版本,分.NET3.5和.NET4.6两个版本
Scripting Backend:指build后脚本生成的方式分Mono和IL2CPP,由于苹果现在要求提交的app需要支持64位,所以这里只能选择IL2CPP生成C++的代码,编译成支持64位的代码,而Mono不能支持64位,审核时会被苹果拒绝
Api Compatibility Level:指C#API兼容级别,分.Net2.0全集和.Net 2.0 SubSet,尽量选择SubSet,可以减小包大小,
Target Device:指发布的目标平台,分iphone,ipad和iphone+iPad
Target SDK:指使用哪个版本的XcodeSDK,分Device SDK和 Simulator SDK,选择Device SDK则只能在设备上打包测试,而选择Simulator SDK则可以直接在XCode模拟器运行,具体看测试的需要
Target minimum iOS Version:指支持的最小的iOS版本,现在最高版本已经是ios11了,所以设置成最小值是8.0即可
Accelerometer Frequency:设置检测加速度传感器的频率,默认情况下,一个UnityiOS应用程序加速器每秒进行60次采样,可以通过降低采样频率的加速度看到一些性能上的好处,甚至可以在游戏不使用加速器输入,将它设置为Disabled
**Camera Usage Description:
Location Usage Description:
Microphone Usage Description:**
这三个选项分别指,询问用户是否允许App使用相机,位置和麦克风的权限,如果需要访问,这里要添上描述,用于询问时的描述
Mute Other Audio Sources:是否当app进入后台后继续播放音频
Prepare iOS for Recording:当勾选时microphone recoding api会被初始化,使录音有较低的延迟
**Requires Persistent WiFi:**app是否需要Wi-Fi连接,当App运行时iOS会维护一个活动的Wi-Fi连接,对应info.plist的Application uses Wi-Fi key
Allow downloads over HTTP (nonsecure):开启后允许通过HTTP下载内容,默认推荐是使用HTTPS
Supported URL schemes:配置IOS的URL schemes
Disable HW Statistics:是否禁用 Hard Ware 统计,默认Unity的 iOS app会发送匿名的Hard Ware 统计到Unity.禁用后可以禁止发送统计
**Defer system gestures on edges:
Hide home button on iPhoneX:**
这两个选项主要是针对iPhoneX的功能设置的,由于iPhoneX取消了实体home键,所以会有一个指示边提供了类似Home键的功能,默认手势会先响应指示边,这会在游戏中造成不好的体验,比如误点,所以IOS11提供了延迟系统手势的选项,可以针对四个边的每个边进行设置,建议四个全设置成延迟。
也可以设置成隐藏homeButton,注意这两个不要同时设置,如果想实现延迟系统手势的效果,就不要设置隐藏home button了
Render Extra Frame on Pause:指当app 暂停时是否渲染额外的帧
Behavior in Background:指app切到后台后的行为,可以选择挂起,退出,或自定义一些行为
Architecure:选择支持的CPU架构,ARMv7或ARM64或两者全兼容
Scripting Define Symbols:可以自定义编译选项,定义后可以在代码里用#号引用
Active Input Handling:使用新的Input System还是Input Manager或是两者都用
Enable ProMotion Support:是否支持高频率
Requires ARKit support:是否需要arkit支持, arkit是个虚拟应用的组件
Automatically add capabilities:通过unity给xcode中的plist中添加一些设置
优化相关(Optimization):
Prebake Collision Meshes:是否在构建时将碰撞数据加到mesh里
Keep Loaded Shaders Alive:保证已经加载的Shader不会被卸载
Preloaded Assets:当app启动时被预先加载的资源数组
AOT Compilation Options:附加的AOT编译器选项
Strip Engine Code:如果被选中,unity会默认剥离在项目中不会使用的组件”,也就是说,假如你的项目中没有音频功能,unity会在封装的时候去掉这部分代码以减少大小,这个设置只在IL2CPP中有效)
Script Call Optimization:分Slow and Safe和Fast But No Exceptions,除非是极致的优化性能,建议还是选择Slow and safe
Vertex Compression:选择哪些Vertex channels被压缩,压缩可以节省内存和带宽,但会丢失一些精度,包括Position,Normal
Color,UV0,UV1,UV2,UV3,Tangent(切线空间)
Optimize Mesh Data:从mesh中移除掉材质不需要的数据包括tangents(切线),normals(法线),colors,和UV
Logging:是指设置日志输出的类型
Clamp BlendShapes:已经不推荐使用了