文章目錄
- 前言:
- 1、基礎配置
- ①XR Interaction Toolkit
- ②創建一個XR場景
- ③示例文件實現
- ④ 一鍵配置(PICO Building Blocks)
- 2、射線移動物品和抓握物品
- 方法一:Grab Interactable
- 方法二:prefab
- 3、Box Collider的作用與使用
- 解析 Box Collider的作用
- ① 物理碰撞檢測
- ③ 射線檢測(Raycast)
- 如何正確使用 Box Collider
- (1) 基本配置
- (2) 與 Rigidbody 的配合
- (3) 觸發區域設置
前言:
根據pico官方文檔進行配置交互,其中有一些基礎的問題點不是很理解,在這邊進行簡要的記錄。
1、基礎配置
①XR Interaction Toolkit
版本:3.0.3 · May 03, 2024
獲取方式:window-> packageManager -> 選擇需要的package,通過Changelog查看各個版本,在通過Add version by name進行添加
②創建一個XR場景
如何創建一個XR場景
如果是第一次進行實現的話,最好是先看一遍官網創建第一個XR場景,再往下看,不然很多東西是不理解的。
③示例文件實現
如何下載開源示例代碼與資源
這個示例文件是PICO官網的交互示例,可以重點看一下,把響應
④ 一鍵配置(PICO Building Blocks)
PICO Building Blocks 系統可以幫助你在項目里一鍵完成功能配置,包括 PICO Unity Integration SDK 和 Unity 官方提供的功能。 如何使用PICO Building Blocks進行一鍵設置
2、射線移動物品和抓握物品
方法一:Grab Interactable
GameObjection -> XR -> Grab Interactable 再將物品作為其子項
在以下截圖中,Far Attach Mode設置為near,可實現抓握物品
方法二:prefab
①在Hierarchy中直接添加一個prefab文件
②添加component -> XR Grab Interactable 進行設置
③Add Component > Physics > Box Collider 添加物理碰撞體,
3、Box Collider的作用與使用
解析 Box Collider的作用
① 物理碰撞檢測
碰撞響應:當兩個帶有碰撞器(Collider)和剛體(Rigidbody)的物體接觸時,觸發物理引擎的碰撞計算(如反彈、摩擦)。
② 觸發事件檢測
觸發區域:勾選 Is Trigger 后,碰撞器變為觸發區域,物體可穿透但會觸發事件。
事件類型
void OnTriggerEnter(Collider other) { /* 進入觸發區域 */ }
void OnTriggerExit(Collider other) { /* 離開觸發區域 */ }
③ 射線檢測(Raycast)
碰撞檢測基礎:Box Collider 為射線檢測提供碰撞體積,用于判斷是否擊中目標。
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit)) {Debug.Log("擊中物體:" + hit.collider.name);
}
如何正確使用 Box Collider
(1) 基本配置
為物體添加 Box Collider:
菜單欄:Component > Physics > Box Collider。
調整碰撞體尺寸:
在 Inspector 中修改 Size 和 Center,使其匹配物體的視覺模型。
(2) 與 Rigidbody 的配合
動態碰撞:
若物體需要受物理引擎控制(如重力、外力),需附加 Rigidbody 組件。
csharp
Rigidbody rb = GetComponent();
rb.AddForce(Vector3.forward * 10f);
靜態碰撞:
若物體靜止(如地面),只需添加 Collider,無需 Rigidbody。
(3) 觸發區域設置
勾選 Is Trigger。
編寫觸發事件邏輯:
csharp
void OnTriggerEnter(Collider other) {
if (other.CompareTag(“Player”)) {
Destroy(gameObject); // 玩家觸碰后銷毀物體
}
}