Skip to content

禁用手的显示与交互

TIP

  • AROS 中的手分为系统级和应用级。
  • 系统级的手默认状态下可以在任意应用之上展示并可用于触发系统菜单等系统级操作,可以通过特定接口关闭,以避免应用运行时与系统级手的操作冲突或者被系统级手遮挡。

如何禁用应用内的手功能

csharp
//隐藏手的显示(仅仅隐藏显示,交互不受影响)
        ARHandManager.leftHand.Visibility = false;
        ARHandManager.rightHand.Visibility = false;

        //禁用手部物理
        ARHandManager.leftHand.PhysicsInteraction = false;
        ARHandManager.rightHand.PhysicsInteraction = false;

        //禁用远距离交互
        ARHandManager.leftHand.RaycastInteraction = false;
        ARHandManager.rightHand.RaycastInteraction = false;
        
        //禁用近距离交互
        ARHandManager.leftHand.TouchInteraction = false;
        ARHandManager.rightHand.TouchInteraction = false;

如何禁用系统级的手的功能

开发者在应用设计可以选择是否在应用内启动 OS 自带交互系统(SystemUI),即下图功能:

TIP

  • 应用内全局控制:AROS 0.3.0 之后的推荐做法是在 UnityEditor 的 Project 视图搜索“OSEventSystem”,找到这个 prefab,选中,在 Inspector 面板设置 EnableSystemUI。
  • 动态控制:如果需要在运行时动态启用或禁用 SystemUI 请调用下方接口。
csharp
/// <summary>
    /// 设置系统级交互的状态,包括:食指指尖Home、手腕菜单、系统级手的显示状态
    /// </summary>
    /// <param name="state">false表示禁用系统级交互</param>
    OSEventSystem.SetSystemInteractionState(bool state);