MRが楽しい

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

LCCUnitySDKを使ってQuest3でLCCモデルを表示する その5(LCC表示シーンの作成)

本日はQuest3の小ネタ枠です。
LCC Unity SDKを使ってQuest3でLCCモデルを表示する方法です。

前回記事

以下の前回記事の続きです。
bluebirdofoz.hatenablog.com

本記事ではLCC Unity SDKのインポートを行います。

LCC表示シーンの作成

LCCモデルを読み込んで表示するシーンを作成します。
Hierarchy上で右クリックから[Create Empty]を追加します。

作成したオブジェクトのTransromをRotaion.x=-90, Scale.x = -1に設定します。

一時フォルダに存在するLCCモデルを読み込んで表示する以下のサンプルスクリプトを作成します。
・LCCRenderer.cs

using UnityEngine;
using LCCCore;

public class LCCRenderer : MonoBehaviour
{
    public LCCManager m_manager;
    private LCCCore.Renderer m_renderer;

    void Start()
    {
        // persistentDataPath フォルダ内のLCCフォルダ内に存在する .lcc ファイルを検索する
        // persistentDataPath フォルダは環境ごとに以下のパスを指す
        // Windows : C:\Users\<username>\AppData\LocalLow\<companyname>\<productname>
        // Android : /Android/data/<packagename>/files
        string searchPath = System.IO.Path.Combine(Application.persistentDataPath, "LCC");
        string[] files = Directory.GetFiles(searchPath, "*.lcc", SearchOption.TopDirectoryOnly);

        // .lcc ファイルがない場合は処理しない
        if (files.Length == 0)
        {
            Debug.LogError($"[LCCRenderer] No .lcc files found in: {searchPath}");
            return;
        }

        // 複数ある場合は最初のファイルを利用する
        string path = files[0];
        Debug.Log($"[LCCRenderer] Loading file: {Path.GetFileName(path)}");

        m_renderer = m_manager.GetRender(this.transform);
        m_renderer.Load(path, PlatformType.Quest, onLoadCallback);
    }

    private void onLoadCallback()
    {
        Debug.Log("data loaded");
    }
}

作成したスクリプトをオブジェクトに追加します。

m_manager変数にLCCManagerコンポーネントの参照を設定します。

これでシーンの作成は完了です。

長くなったので記事を分けます。
次回はQuest3でのモデル表示です。
bluebirdofoz.hatenablog.com