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
-