如何使用 Unity3D 为 iPad Pro 创建多屏体验?
Posted
技术标签:
【中文标题】如何使用 Unity3D 为 iPad Pro 创建多屏体验?【英文标题】:How can I create a multi-screen experience for an iPad Pro using Unity3D? 【发布时间】:2019-05-08 18:28:38 【问题描述】:多年来,Apple 提供了在连接的屏幕上显示与驱动它的 ios 设备上的内容不同的内容的能力。
有没有办法将此功能与 Unity 内置的应用程序一起使用?即,iPad 将显示一个摄像头视图,而通过 USB-C 连接器通过 HDMI 连接的电视将显示不同的摄像头视图?
Apple 文档文章是 here,一个不错的演练是 here。
This article 解释了如何在 Unity 和 Swift 之间发送消息,但范围似乎相当有限。
【问题讨论】:
对第二个屏幕的支持已经存在很多年了。请参阅Display one thing on iPad and another on Apple Tv(答案使用 Objective-C 代码,但它与 Swift 中的 API 相同)。在 iPad Pro 上支持它并没有什么特别之处。 也许像这样docs.unity3d.com/Manual/MultiDisplay.html? 【参考方案1】:很遗憾,iOS 不支持正常的 Unity MultiDisplay 工作流程,因此解决方案有点棘手:
using UnityEngine;
using System.Collections;
public class MultiScreen : MonoBehaviour
// set the two cameras via the inspector
public Camera primaryCam;
public Camera secondaryCam;
void Start()
// render the primary camera to the main display
primaryCam.SetTargetBuffers(Display.main.colorBuffer, Display.main.depthBuffer);
secondaryCam.depth = primaryCam.depth - 1;
secondaryCam.enabled = false;
void Update()
// only render the second display if it is attached
if (Display.displays.Length > 1 && !secondaryCam.enabled)
// set the second display's resolution
Display.displays[1].SetRenderingResolution(Display.displays[1].systemWidth, Display.displays[1].systemHeight);
// render the secondary camera to the second display
secondaryCam.SetTargetBuffers(Display.displays[1].colorBuffer, Display.displays[1].depthBuffer);
// activate the second camera and render pipeline if a second display is connected
secondaryCam.enabled = Display.displays.Length > 1;
此外,我必须确保 Auto Graphics API
在 Project Settings > Player > Other Settings > Rendering
中被停用,并且 Metal
已从以下列表中删除。设置 Company Name
、Product Name
和 Bundle Identifier
可能也有帮助。
【讨论】:
以上是关于如何使用 Unity3D 为 iPad Pro 创建多屏体验?的主要内容,如果未能解决你的问题,请参考以下文章
ARKit 3.5 – 如何使用 LiDAR 从新 iPad Pro 导出 OBJ?
取代 PC?iPad Pro 上手,说说关于 iPad Pro 的争议与疑问