更新:
遥控器映射字母失效(A、X等),经测试如下正常使用
Input.GetAxisRaw("Horizontal")/Input.GetAxisRaw("Vertical")
Input.GetKeyDown(KeyCode.JoystickButton0)//菜单
Input.GetKeyDown(KeyCode.JoystickButton14)//触摸区域 点击
Input.GetKeyDown(KeyCode.JoystickButton15)//暂停、播放按钮
Input.gyro.rotationRate
Input.acceleration
说明
文档的主要目的是帮助开发人员从iOS过渡到tvOS。Apple TV平台,是建立在iOS平台基础之上的,称为tvOS,但也给应用程序开发人员带来了新的挑战。您可以轻松地在tvOS上部署现有的iOS应用程序,但通常必须调整应用程序的内容以使用tvOS输入控件并在更大的屏幕上正确显示。
先决条件
要为tvOS开发,您需要:
1.第四代苹果电视设备(你还需要一个USB C到USB 3.0电缆,这不是随消费者的包)。
2.Xcode 7.1或更高版本。
3.与iOS设备相同的方式设置此设备的provisioning。要测试provisioning是否正常工作,请使用Xcode创建一个空的tvOS应用程序。
设置说明
1.最好创建一个单独的分支或应用程序副本并将其移植到Apple TV。许多iOS插件与Apple TV不兼容,因为Apple TV仅支持iOS框架的一个子集。Unity无法控制第三方插件及其跨平台兼容性。
2.如果你的app在磁盘上使用的空间超过4GB,请将其分成更小的部分并使用按需资源(On Demand Resources)。要了解更多信息,请参阅下面的按需资源部分。
注意:Bitcode包含在tvOS构建中,这将向可执行文件添加大约130mb。应用商店服务器会删除此代码,因此不会影响分发大小。要估计位代码大小,请使用otool-l从命令行分析可执行文件中的LLVM部分。
有效输入方式
tvOS操作系统有两个主要输入方式:
- 苹果电视遥控器(强制输入)
- 为iOS(MFi)制造的控制器(可选)
苹果电视遥控器(Siri Remote)是一种多功能输入设备,可做为传统菜单导航控制器、app控制器、陀螺仪、加速度传感器和触摸手势设备使用。Unity将Apple TV遥控器的输入路由到相应的Unity APIs,但不对该输入执行其他处理。
您的app可能需要对其输入方案进行一些调整,以利用Apple TV遥控器的特定输入功能。例如,你的app可以将其视为一个传统的应用程序控制器,有一个模拟轴和一个额外的操作按钮,或者你的app可以使用加速计进行交互,如转向。将应用程序移植到tvOS时,可以尝试各种方案。
Unity为iOS(MFi)提供支持,这是对iOS和tvOS的标准化控制器。MFi控制器提供开箱即用的输入映射,您可以在Unity编辑器中设置自定义操作映射(menu: Edit > Project Settings…,然后选择输入类别)。有关更多信息,请参阅有关iOS游戏控制器支持的文档,以及有关游戏控制器的Apple developer文档.
两个无线iOS(MFi)app控制器可以同时连接到Apple TV设备,可有效地将其转变为一个控制台。您的app可以使用与iOS MFi控制器相同的控制器,但您必须确保其仅适用于Apple TV遥控器。tvOS系统将附加控制器的数量限制为两个。
以下是有关访问特定电视遥控器功能的一些技术细节:
您可以通过以下专用API控制Apple TV遥控器操作模式:
*UnityEngine.tvOS.Remote.allowExitToHome
*UnityEngine.tvOS.Remote.allowRemoteRotation
*UnityEngine.tvOS.Remote.reportAbsoluteDpadValues
*UnityEngine.tvOS.Remote.toucheenabled
注意:当UnityEngine.Apple.TV.Remote.allowExitToHome为false时,菜单按钮映射到操纵杆按钮0。这会导致与默认输入窗口冲突,因为它还使用操纵杆按钮0映射确定虚拟按钮。这将导致Menu按钮触发对UI元素的操作。要解决此问题,请删除或修改输入窗口(menu: Edit > Project Settings)中的确认虚拟按钮绑定,然后选择输入类别)。
Unity UI设置app导航
必须为Apple Game Center的本机排行榜UI提供自定义视觉资源. 下面是如何在Xcode中设置它们:
- 在Unity编辑器中打开Input窗口。找到确认虚拟输入的第一个匹配项,展开它,并将其Alt正按钮更改为操纵杆按钮14。
- 在场景中选择EventSystem对象. 在Inspector中,找到EventSystem组件,并设置对应在第一个选定属性中接收初始焦点的UI appObject的引用。您可能需要在独立输入模块组件中启用Force input module属性。
注意:当您的app在电视模拟器中运行时,Apple TV遥控导航将不起作用。
向Xcode项目添加排行榜资源
Apple Game Center要求您为其本机排行榜UI提供自定义视觉资源。下面是如何在Xcode中设置它们:
- 打开XCode项目。
- 选择Images.xclassets。
- 在列出的文件下单击鼠标右键,然后从出现的菜单中选择“Game Center > New AppleTV Leaderboard”。
- 添加图像资源。
- 选择“排行榜”,然后在右侧窗格中选择“Edit View”。
- 在“Identifier field”字段中输入您的排行榜ID。
提示:如果在进行此更改后资产编译失败,请尝试禁用Xcode生成设置窗口中的按需资源(Demand Resources)选项。
实施按需资源支持
tvOS限制app可以保留多少磁盘空间。主app安装捆绑包大小不能大于4GB。对于在用资产,附加可下载内容的限制高达2GB,总可下载内容的限制高达20GB。苹果推荐tvOS可下载内容的点播资源(ODR),这是对tvOS最好的磁盘空间管理。Unity通过资产包支持ODR。有关ODR实现的更多信息,请参阅Unity博客Mastering on-demand resources For Apple platforms。
已知限制
- 屏幕键盘仅限于单行输入。
- tvOS模拟器没有将苹果电视遥控器模拟为应用程序控制器,这意味着应用程序无法访问其输入。