# 安裝 Pico XR SDK
:::info
2022/10/10 此 SDK 已更名為 PICO Unity Integration SDK
:::
:::danger
**重要!!**
實驗室 pico 的 PUI 版本是 4.X.X,如果你使用新版 PICO SDK 會遇到黑屏/閃退問題。
**請使用舊版 SDK (v.2.1.2 以下)。**

:::
:::warning
此 SDK 支援 Unity 版本:
- 2019.4
- 2020.3
- 2021.3
如果你不是使用這些版本,很可能會導致錯誤。
關於如何將實驗室舊專案升級版本請見 [升級 Unity 引擎版本](/Vdw7uwrOSxGLSiuze7rXPA)
:::
## 下載 Pico XR SDK
- ~~SDK 下載: https://developer.pico-interactive.com/sdk/index~~
- 實驗室使用版本 v.2.1.1: http://140.115.54.26:4000/110522166/PICO_Unity_Integration_SDK
- 官方 Github: https://github.com/picoxr/support
- 官方文檔:https://developer.pico-interactive.com/docs/cn/12050/225280/
- 官方文檔(2.5):https://pdocor.pico-interactive.com/reference/unity/xr/2.05/index.html
- Unity XR 官方說明 https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.0/manual/general-setup.html
## 安裝 Pico XR SDK
下載後解壓縮到專案資料夾,**不在 Assets/ 底下的地方** (依習慣放根目錄或是 Package/ 下)
:::warning
<!-- :warning: 不要直接解壓到專案裡面,後面會報錯 -->
:warning: 待會設定好後那個*路徑*就**相當於專案的一部分**,也就是之後你去更改那個路徑的內容,或是不小心刪到,專案就會炸給你看。
:::
打開專案,打開 Windows > Package Manager,按左上角的 +,選 Add package from disk

跳出檔案選擇視窗,到剛才的*路徑*,找到裡面的 `package.json` 並選擇

## 安裝 UnityEngine.XR
在 Package Manager 中,切換左上 Package 來源到 Unity Registry,在右上搜尋框找 `XR`,找到 XR Plugin Management 與 XR Interaction Toolkit,安裝他們

XR Interaction Toolkit 底下的兩個 Samples 也都安裝 (Starter Assets 與 XR Device Emulator)

## 環境設置
:::success
左邊 BOKU NO PICO 內有附上我的 XR 物件包,你可以直接拿去用,可以用的話就能跳過這一節了
:::
:::info
跳過這一步的話,你在下一步建立 Rig 時要手動把左右手 Controller 選項填上去
:::
到 Edit > Project Settings 裡面的 Preset Manager > Add Default Preset 新增 XR Controller (Action-based),照著下面的圖填參數

同樣 Project Settings > XR Plugin Management,幫 PicoXR ==(新版改名 PICO)== 打勾勾

## 建立 Rig
:::success
使用我的 XR 物件包可以跳過這一節:直接使用底下 `[PicoXRRig]` 即可
本章節是從政哲的筆記複製貼上的,謝啦
:::
* 在場景 Hierarcy 右鍵 > XR > XR Origin (new Action-based) ==(new: XR > Device-Based > XR Origin(VR))==
* XR Origin 新增 Input Action Manager 部件
* Action Assets 新增 XRI Default Input Acitons
* 可以調整一下 Camera Y Offset,我這邊是太高了

* XR Origin 底下的 LeftHandController 和 RightHandController
* 底下新增一個空物件,代表虛擬手把的位置
* (選裝)底下另外新增一個空物件,代表人物模型手的位置
* XR Controller 部件 > Model 新增 Pico 的手把模型(Package > PicoXR Plugin > Assets > Resources > Prefabs 裡面)
* Model Parent 加上剛剛代表虛擬手把位置的空物件

* XR Ray Interator 部件底下調整 Raycast Configuration(很重要!Max Raycast Distance 決定你雷射能互動的距離!)

* (選裝)XR Origin 底下的 MainCamera 新增 Head Tracker 空物件代表人物模型頭的位置
* XR Origin 新增 XR Interaction Manager
* 最後把它做成 Prefab,全部照做應該長這樣

## Troubleshoot
:::info
#### build 專案時遇到 `Execution failed for task ‘:processReleaseResources’`
(見 Pico VR SDK 文件)
1. 更改 manifest (`android:requestLegacyExternalStorage`)
2. 嘗試更新 Android SDK 版本 (Preference > External Tools)
:::
###### References
政哲的探路筆記 https://hackmd.io/qUwntB_gRQi_eAl0DWYNFw