# 让应用程序同时兼容壁挂模式和标准模式
## 支持壁挂模式
随着 SDK ver. 2.3.0 版发布后,以前建议在 45 度倾斜位置(标准模式:Standard mode)使用的 ELF-SR2 现在可以在直立垂直位置(壁挂模式:Wall mount mode)使用。但是,在将应用程序调整为壁挂模式时,ELF-SR1 不能垂直使用,导致显示屏倾斜。同样,以标准模式使用 ELF-SR2 也会导致显示屏倾斜。 因此,专为壁挂模式设计的应用程序只能用于垂直放置的 ELF-SR2。
为确保在壁挂模式和标准模式下都能正确显示,请考虑以下方法:
## 解决方案
有两种方法可以实现壁挂模式和标准模式的兼容性(以 Unity 为例进行说明,但类似方法也可应用于虚幻引擎):
### 独立场景
创建两个独立场景:一个用于壁挂模式,另一个用于标准模式。在每个场景中,放置一个 SRDisplay Manager。在垂直场景中启用 **Is Wallmount Mode**选项,在标准场景中禁用该选项。在应用程序中提供用户可选设置,以便在这些场景之间切换。虽然这种方法需要两个场景,但可以根据壁挂模式和标准模式下的不同观察区域优化对象定位和显示调整。
### 在运行时切换壁挂模式
在这种方法中,整个应用程序使用一个 SRDisplay Manager。在运行时,切换 **Is Wallmount Mode**设置。提供一个用户可配置的选项来选择所需的环境(壁挂或标准)。当应用程序启动时选择了垂直方向,则打开 **Is Wallmount Mode**;如果选择了标准方向,则关闭 **Is Wallmount Mode**。
```C#
_srdManager = SRDSceneEnvironment.GetSRDManager();
_srdManager.IsWallmountMode = true; // 启用壁挂模式
```
在虚幻引擎中,您可以使用蓝图节点来实现此功能。
![BP_node](/Products/Developer-Spatial-Reality-display/img/tips/vertial-app-dual-support/BP_EnableWallmountMode.webp)
虽然这种方法具有在单一场景中同时处理两种方向的优势,但在放置对象时要谨慎,因为在不同显示区域渲染同一场景可能需要进行调整。
请记住,有些内容可能会给双向兼容性带来挑战,但通过这些创造性的解决方案,您可以创建在垂直和标准方向上都能无缝运行的应用程序。
---
参考资料 : [现在可垂直安装](/Products/Developer-Spatial-Reality-display/zh/tips/vertical-app-introduction/)\
参考资料 : [制作支持垂直安装的应用程序](/Products/Developer-Spatial-Reality-display/zh/tips/vertical-app-develop/)