LeapMotion-PhysicalHandsManager 类详解
PhysicalHandsManager 类详解
这个类是 Ultraleap 物理手交互系统的核心管理器,负责处理手部物理交互的不同模式。下面我将详细解析这个类的结构和功能:
类概述
PhysicalHandsManager
继承自 LeapProvider
,是物理手交互系统的中央控制器:
public class PhysicalHandsManager : LeapProvider
关键枚举:ContactMode
public enum ContactMode
{HardContact, // 刚性接触 - 使用物理碰撞SoftContact, // 软性接触 - 使用柔性物理NoContact // 无接触模式 - 仅悬停检测
}
主要属性
1. 输入提供者 (InputProvider)
[SerializeField] private LeapProvider _inputProvider;
public LeapProvider InputProvider
{get { /* 自动获取最佳提供者 */ }set { /* 设置并订阅事件 */ }
}
-
作用:连接到 Leap Motion 数据源
-
特点:
-
自动查找场景中的最佳提供者
-
订阅帧更新事件
-
管理协程生命周期
-
2. 接触模式 (contactMode)
[SerializeField] private ContactMode _contactMode;
public ContactMode contactMode
{get { return _contactMode; }set { SetContactMode(value); }
}
-
作用:控制当前物理交互模式
-
辅助方法:
public void SetContactModeEnum(int contactModeInt) {contactMode = (ContactMode)contactModeInt; }
3. 接触父对象 (ContactParent)
private ContactParent _contactParent;
public ContactParent ContactParent => _contactParent;
-
作用:当前激活的接触控制器
-
类型:根据接触模式动态创建:
-
HardContactParent
-
SoftContactParent
-