本日はMRDLのSurfaceを勉強していきます。
前回までで[Cube(Volume)]シーンのマテリアルを調査しました。
このSurfaceは計9つの各体験がシーンごとに分けられていますが、実際には起動時の最初の[Startup Scene]内ですべてが完結しており、各体験のシーンが[Startup Scene]にロードされる形で使用されています。
今回はこの[Startup Scene]を調査していきます。

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

[Tutorial]オブジェクトはアプリケーション起動時にユーザーにHandMenuを使用させるために表示するテキストです。
[HoldUpPalmText]がそれにあたります。
[Tutorial]オブジェクトには[Tutorial]コンポーネント、[Development Tool]コンポーネントがアタッチされています。

[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]はデバッグ等の開発ログにかかわる機能です。
本日はここまで、明日以降続きも見ていきます。