---
# System prepended metadata

title: SteamVR to PicoVR Migration Guide
tags: [lab]

---

# SteamVR to PicoVR Migration Guide
###### tags: `lab`


<img src="https://i.imgur.com/kqJhebz.jpg"  style="display: block; margin-left: auto; margin-right: auto; width: 50%; max-width: 250px; border-radius: 25%;" alt="放個很讚的油圖">
 
<div style="margin-top: 12px; margin-bottom: 25px; text-align: center; font-family: monospace;fantasy;">
Welcome to SteamVR to PicoVR Migration Guide!
<br>
這份文件將會介紹如何把實驗室 SteamVR 的專案遷移到 PicoVR/XR
</div>


:::info
請使用左方的導覽列瀏覽各個主題，如果你沒看到導覽列，請使用下方連結：
https://hackmd.io/@jcxyisncu1102/steamvr-to-pico
:::

**在開始之前，有幾個大原則，先注意以下幾點：**

### 不可以有只能在 Windows 上跑的 code
Pico VR 是跑在 Android 上的，所以你可以直接切換開發平台到 Android 看看有沒有報錯

例如：
- 實驗室呼吸綁帶的 `System.IO.Ports` (見[呼吸綁帶/用到藍芽的裝置修正](/_JAwUmZmS5Kk-ql4nRvuTg))
- `SpeechLib` 的 `SpVoice` (見[實驗室框架修正](/66gT5sQXQQyreZeqLwGujA))
- `System.drawing`
- `UnityEngine.Windows.Speech`


反正如果你按 build 之後出現 Compiler Error，或是還沒按、只是轉換平台就噴 Error 了，就是有問題


### 很多 Windows 上能用的路徑 Android 上不能用
- `Application.datapath`
- `Application.streamingAssetsPath`
- 請改用 `Application.persistentDatapath`
- (見[實驗室框架修正](/66gT5sQXQQyreZeqLwGujA))

### 如果有用 git 版控，記得修改下 gitignore
新增這幾行
```
# Pico SDK caches
/PvrSQPBundles/
/PxrSQPBundles/
```
:::info

:::spoiler 實驗室框架下的 gitignore 完整版
```bash
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
Assets/AssetStoreTools*

# Visual Studio cache directory
.vs/
.vscode/

# caches
*.DS_Store

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.opendb

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta

# Unity meta 資料夾的meta會ignore 
!*.*.meta

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

#----------------------------------------------
# LabFrame Stuffs
/Assets/Output/
/Assets/TestData/
/TestStore/

# Pico SDK caches
/PvrSQPBundles/
/PxrSQPBundles/
```

:::


## 相關網址
- SDK: https://developer.pico-interactive.com/sdk/index
- Github: https://github.com/picoxr/support
<!-- - 官方文檔：https://developer.pico-interactive.com/docs/cn/12050/225280/ -->
- 官方文檔：https://developer-global.pico-interactive.com/document/unity
- 官方文檔(API / 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.2/manual/general-setup.html