Unity3D 官方文档 平台特殊化之IOS

版本:unity 5.6  语言:C#

总起:

IOS平台在做第三方对接的时候,除了XCode这个IDE有点弱,提示错误内容不太精确以外,通过C语言直接和Unity交互还是很方便的,至少不会出现android平台那么多奇怪的错误。

主要流程是将Unity工程导出成XCode工程,然后在Mac上使用XCode进行开发,开发完毕后可以将XCode的配置文件和一些第三方包做备份,以后新出包的XCode工程直接覆盖就可以了,非常方便。

XCode7以上的版本可以让任何开发者在真机上调试,但是对接支付功能必须有开发者帐号,发布应用当然也必须成为开发者。成为开发者必须向苹果网每年缴纳99美元的费用。

在播放影片的时候,不管是Android平台还是IOS平台,MovieTexture是不支持的。想要播放影片的话,可以将影片放到StreamingAssets文件夹下,然后调用Handheld.PlayFullScreenMovie。

Player Settings:

IOS平台的Player Settings与Standalone平台有很多相似之处,所以这边主要是列举有区别的项目,有需要的请参考之前的文章。

 

♦ Resolution and Presentation



Default Orientation 默认屏幕的朝向;

Requires Fullscreen 游戏以全屏方式启动;

Status Bar Hidden 应用启动时,状态栏自动隐藏;

Status Bar Style 状态栏的样式;

Disable Depth and Stencil 禁用深度和模版缓存,跟Shader有关,最好不要勾选;

Show Loading Indicator 加载指示器的显示方式。

 

♦ Icon和Splash Image与Standalone平台类似,暂略。

 

♦ Debugging and crash reporting



Enable Internal Profiler 启用IOS内部分析器,该分析器会对Unity每个子系统每一帧分析一次,平均一秒会有30次;

On .Net UnhandledException 当程序发生崩溃时,给与用户的处理。Crash,可以让用户向iTunes提供一份崩溃报告;Silent Exit,直接退出。

 

Log ObjC uncaught exceptions 启用一个用户自定义的ObjC异常处理程序,会将异常信息打印到控制台;

Enable Crash Report API 允许一个自定义的Crash Reporter对异常进行捕捉。

 

♦ Other Settings中的Rendering和Identification部分和之前的类似,暂略。

 

♦ Other Settings Configuration


(与Andriod平台配置不同的以粗体表示)

Scripting Backend 脚本,IL2CPP和Mono2x,Mono2x就是C#,而IL2CPP是说将C#转成CPP,其中IL2CPP中的IL是C#编译后的中间语言;

 

API Compatibility Level 脚本API的版本:.Net2.0和.Net2.0 Subset;

 

Target Device 目标的设备,可以选择iPhone和iPad;

 

Target SDK 使用的SDK;

 

Target minimum iOS Version 目标最小的iOS版本;

 

Use on demand resources 可以启用需求的资源;

 

Accelerometer Frequency 加速器取样帧率;

 

... Usage Description 可以自定义获取该权限的原因文字;

 

Mute Other Audio Sources 应用程序会停止后台应用程序的音频;

 

Prepare iOS for Recording 初始化麦克风的API,这可能导致用户只能使用耳机;

 

Requires Persistent WiFi 确定应用程序是否需要WiFi连接;

 

Allow downloads over HTTP(nonsecure) 启用该选项时,下载通过http而不是https;

 

Supported URL schemes URL方案的列表;

Disable HW Statistics 不将硬件统计的信息发送给Unity官方,只有专业版才能勾选;

 

Behaviour in Background 游戏进入后台后的行为:Suspend 暂停;Exit 退出;Custom 用户自定义。

 

Architecture 选择目标框架,有两种选择Armv7和Arm64;

 

Scripting Define Symbols 脚本编译时的标志设置;

 

♦ Other Settings Optimization



Prebake Collision Meshes 只在build游戏时添加碰撞盒;

Keep Loaded Shaders Alive 保证Shader不会被卸载;

Preloader Assets 预先读取的Assets列表;

 

AOT Compilation Options 附加的AOT编译选项;

 

Strip Engine Code 启用代码剥离,只有在使用IL2CPP的时候才会有效果;

 

Script Call Optimization 有两个选项:

1.Slow and Safe 所有的异常都会被捕捉;

2.Fast but no Exceptions 不会提供异常处理,但运行速度会变快。

 

Vertex Compression 顶点压缩,选择模型会压缩的数据,比如可以选择everything,然后去掉positions和lightmap UVs。当然每个每个模型在导入时,可以设置独立的该参数,会覆盖掉该选项;

Optimize Mesh Data 优化Mesh数据,勾选该选项会移除材质所不需要的Mesh数据,例如tangents、normals、colors、UV。

 

个人:

马上2018年了,这也应该是我2017年最后一篇文章了。写官方翻译总是我比较纠结的文章系列,而且从反响来看也并不是怎么好,感觉还是应该多写写三种文章:

1.以某一技术作为基础的博文;

2.以某一解决方案为技术的博文;

3.读书或做项目时的笔记。

新浪博客和CSDN博客访问量合计突破了10W,感觉蛮欣慰的。明年会更加注重实践来写博客,希望大家多多关注。


猜你喜欢

转载自blog.csdn.net/u012632851/article/details/78938690