MRが楽しい

MRやVRについて学習したことを書き残す

公式チュートリアル「HOLOGRAMS 210 6章」を試してみる

チュートリアルお試し枠です。
今回はHolograms 210 6章 Tag-Alongを試します。
azure-recipe.kc-cloud.jp

リンク先のページではInteractibleAction.csのリンクが切れていたので、下記から取得しました。
magicbullet.hatenablog.jp

チュートリアルの通りに実装を進め、アプリをビルドしました。
宇宙飛行士にあるボタンををタップするとディスプレイのようなものが浮かび上がります。
f:id:bluebirdofoz:20170621012336j:plain
視線を移動させると、それに追従するようにディスプレイが空間を移動します。
f:id:bluebirdofoz:20170621012349j:plain
宇宙飛行士に近づくと、ディスプレイも奥へと下がります。

追加したコード部分を確認します。
・Interactible.cs

    void OnSelect()
    {
        for (int i = 0; i < defaultMaterials.Length; i++)
        {
            defaultMaterials[i].SetFloat("_Highlight", .5f);
        }

        // Play the audioSource feedback when we gaze and select a hologram.
        if (audioSource != null && !audioSource.isPlaying)
        {
            audioSource.Play();
        }

        /* TODO: DEVELOPER CODING EXERCISE 6.a */
        // 6.a: Handle the OnSelect by sending a PerformTagAlong message.
        SendMessage("PerformTagAlong");
    }

・InteractibleAction.cs

    void PerformTagAlong()
    {
        if (ObjectToTagAlong == null)
        {
            return;
        }

        // Recommend having only one tagalong.
        GameObject existingTagAlong = GameObject.FindGameObjectWithTag("TagAlong");
        if (existingTagAlong != null)
        {
            return;
        }

        GameObject instantiatedObjectToTagAlong = GameObject.Instantiate(ObjectToTagAlong);

        instantiatedObjectToTagAlong.SetActive(true);

        /* TODO: DEVELOPER CODING EXERCISE 6.b */

        // 6.b: AddComponent Billboard to instantiatedObjectToTagAlong.
        // So it's always facing the user as they move.
        instantiatedObjectToTagAlong.AddComponent<Billboard>();

        // 6.b: AddComponent SimpleTagalong to instantiatedObjectToTagAlong.
        // So it's always following the user as they move.
        instantiatedObjectToTagAlong.AddComponent<SimpleTagalong>();

        // 6.b: Set any public properties you wish to experiment with.
    }

今回追加したのは、タップを行うと、ObjectToTagAlongオブジェクトを表示するという処理ですね。
このとき、"TagAlong"というタグが付けられたオブジェクトがゲーム内に存在しないことを確認しています。
これは複数表示するのを防ぐためのものと思われます。

5章で利用したBillboardもアタッチすることでディスプレイが常にカメラ方向に正面を向くようになっています。
このスクリプトはパネルUIの表示に役立ちそうですね。

SimpleTagalongコンポーネントはHoloToolkitに付属するコンポーネントです。
オブジェクトを視線の先にディレイをもって追従します。以下で既に実践利用していますね。
bluebirdofoz.hatenablog.com

これで公式チュートリアル「HOLOGRAMS 210」は完了です。