夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MRDL Surfaceを学ぶ Startup Scene Tutorialオブジェクト

本日はMRDLのSurfaceを勉強していきます。

前回までで[Cube(Volume)]シーンのマテリアルを調査しました。

このSurfaceは計9つの各体験がシーンごとに分けられていますが、実際には起動時の最初の[Startup Scene]内ですべてが完結しており、各体験のシーンが[Startup Scene]にロードされる形で使用されています。

今回はこの[Startup Scene]を調査していきます。

f:id:Holomoto-Sumire:20210317074358j:plain

〇Startup Scene

 シーンには[MixedRealityToolkit]、[MixedRealityPlayspace]の基本的なMRTKコンポーネントのほかに[Tutorial]オブジェクト、[SurfacePlacement]オブジェクト、[ShaderTimeUpdater]オブジェクト、[HandMenu]オブジェクトが存在します。

〇Tutorialオブジェクト

f:id:Holomoto-Sumire:20210317075203j:plain

[Tutorial]オブジェクトはアプリケーション起動時にユーザーにHandMenuを使用させるために表示するテキストです。

[HoldUpPalmText]がそれにあたります。

[Tutorial]オブジェクトには[Tutorial]コンポーネント、[Development Tool]コンポーネントがアタッチされています。

f:id:Holomoto-Sumire:20210317080214j:plain

[Tutorial]コンポーネントではアプリが起動してからの時間をTimeで取得し、[StartTime+ initialDelay]の間 holdUpPalmTextが表示されないようにしています。

デフォルトでは2秒後に holdUpPalmTextがアクティブになり、テキストが表示されます。

    private void Update()
    {
        if (Time.time < startTime + initialDelay)
        {
            holdUpPalmText.SetActive(false);
            return;
        }

        if (menu.ActivatedOnce)
        {
            enabled = false;
            return;
        }

        holdUpPalmText.SetActive(true);
    }

また、

        if (menu.ActivatedOnce)
        {
            enabled = false;
            return;
        }

によって一度HandMenuが表示された後は以降表示されなくなります。

[DevelopmentTools]コンポーネントは以下のようになっています。

public class DevelopmentTools : MonoBehaviour
{
    void Update()
    {
        Debug.developerConsoleVisible = false;
    }
}

[Debug.developerConsoleVisible]はデバッグ等の開発ログにかかわる機能です。

docs.unity3d.com

本日はここまで、明日以降続きも見ていきます。