Unityで重い処理をして止まっているときにのみ出てくるロード画面もOVROverlayで使えるそうなのでやってみます。
参考
以前サンプルを見ました。
OVROverlayサンプルから抜き出す
CompositorLayerLoadingScreenを抜き出してプレハブ化する
Loadの文字と
自分の周りを覆うCubemap
コードもOVROverlaySampleから抜き出す。
コード
こんな感じ
StartCoroutine(WaitforOVROverlay());で処理を呼ぶ
それぞれのOverlay素材をアクティブにする
cubemapOverlay.enabled = true;
loadingTextQuadOverlay.enabled = true;
自分の視点のカメラを取得して、そこから設定した距離(distanceFromCamToLoadText)にロードの文字を出してくれる。
文字を出す場所がワールドで固定でいいならカメラと距離らへんの記述はいらない。
System.Threading.Thread.Sleep(2500);というのがテスト用の重い処理
今回は仮にボタンを押したら重い処理を走らせてロード画面を表示するというようにしてみる。
public void LoadButton()
{
StartCoroutine(WaitforOVROverlay());
}
実行
実行したら
System.Threading.Thread.Sleep(2500);が動いている間だけロード画面が出た!!!
ちゃんと重くなっても表示されてる!
OvrOverlayのキューブマップやテキストはUnityのゲーム画面には見えない。
OculusHMD内でのみ見える。だからスクショ取れない><
最後に
多分Oculusでしか見れない