エディターモード開発ガイド
LCC Unity SDK は Editor 内でのシーンレンダリングに対応しています。つまり LCC モデルを、Unity の他の GameObject と同様に編集モードで移動・回転・スケーリングできます。Play ボタンをクリックして Play モードに入らなくても、Scene ウィンドウで 3DGS シーンをリアルタイムに表示・調整できます。
Samples シーンを使用する場合は コード不要の操作 でシーンレンダリングを完了できます。カスタムスクリプトを使用する場合は コード操作 で同じ効果を実現できます。
注:
LCC Unity SDK は全量レンダリングモードとチャンクレンダリングモードの両方に対応しています。全量レンダリングモードでは Scene ビューでモデル全体を完全にレンダリングできます。チャンクレンダリングモードでは、Scene Camera と Game Camera の位置と向きが一致しないため、Scene ウィンドウでモデルが完全に表示されない場合があります。この場合は Scene Camera と Game Camera を同期させる必要があります。
コード不要の操作
SDK Samples シーンを使用する場合、データファイルパス(File Path)が正しく入力されていれば、起動後に Unity が Editor 内でシーンを自動的にレンダリングします。以下のとおりです。

File Path を正しく入力すると、起動時に Unity が Editor 内でシーンを自動レンダリング
シーン切り替え
レンダリングするシーンを変更するには、以下の手順に従います。
- Hierarchy ウィンドウで LCCRenderer GameObject を選択します。
- Inspector ウィンドウの File Path に新しいシーンのデータパスを正しく入力します。
- LCCRenderer (Script) コンポーネントの右側の三点リーダー(⋮)をクリックし、ポップアップメニューから Render を選択します。以下のとおりです。

LCCRenderer (Script) コンポーネント右側の三点リーダーメニューで Render をクリック
注:
元のシーンデータのアンロードと新しいシーンデータの読み込みには時間がかかるため、Render をクリックした後はしばらくお待ちください。新しいシーンが読み込み完了します。
シーンレンダリングの停止
Editor 内でシーンをレンダリングする必要がなくなった場合は、以下の手順でレンダリングを停止します。
- Hierarchy ウィンドウで LCCRenderer GameObject を選択します。
- Inspector ウィンドウの File Path にデータパスを正しく入力します。
- LCCRenderer (Script) コンポーネントの右側の三点リーダー(⋮)をクリックし、ポップアップメニューから unRender を選択します。これで現在のシーンレンダリングが停止します。以下のとおりです。

LCCRenderer (Script) コンポーネント右側の三点リーダーメニューで unRender をクリック
Play モードに入る
Unity の Play ボタンをクリックして通常の Play モードに入ると、シーンがランタイム状態で再レンダリングされます。SDK は内部でマルチスレッド機構を使用しているため、Play モードに入ると編集モードのレンダリングスレッドが強制終了され、Console にエラーメッセージが出力されます。
このエラーは完全に無視して構いません。悪影響はなく、以降の通常操作にも影響しません。
このエラーを本当に表示したくない場合は、Play ボタンをクリックする前に上記の シーンレンダリングの停止(unRender)手順を実行してから、Play ボタンをクリックしてランタイム状態に入ってください。
コードによる操作
カスタムスクリプトでシーンをレンダリングする場合は、カスタムレンダリングクラスの前に [ExecuteInEditMode] 属性を追加するだけで、スクリプトが Editor 内で動作し、編集モードでシーンをレンダリングできます。その他の操作ロジックは Samples の LCCRenderer.cs スクリプトを参照してください。
using LCCCore;
using UnityEngine;
[ExecuteInEditMode]
public class MyLCCRenderer : MonoBehaviour
{
public LCCManager m_manager;
public string m_FilePath;
private LCCCore.Renderer m_renderer;
void Start()
{
m_manager.SetPlatformType(PlatformType.PC);
m_manager.SwitchRenderPass(ActiveRenderMode.SingleRender);
// エディターモードを有効化
m_manager.SetEditorMode(true);
m_renderer = m_manager.GetRender(this.transform);
m_renderer.Load(m_FilePath, onProgress, onComplete);
}
private void onProgress(float _progress)
{
Debug.Log($"[MyLCCRenderer] ファイルの読み込み進捗: {_progress:P1}");
}
private void onComplete()
{
Debug.Log($"[MyLCCRenderer] ファイルを読み込みました");
}
}
注:
[ExecuteInEditMode]属性により、StartやUpdateなどのライフサイクルメソッドが Play モード外でも Editor 内で呼び出されます。これがエディターモードレンダリングの鍵です。- エディターモードは PC/Mac プラットフォームのみ対応です。
- 完全なレンダリング手順(プラットフォーム設定、レンダーモード、データ読み込み)は Samples の
LCCRenderer.csスクリプトを参照してください。
Scene ウィンドウと Game ウィンドウのカメラ同期
SDK が提供する Samples には SceneGameCameraSync スクリプトが含まれており、Scene ウィンドウのカメラ操作を Game ウィンドウへ同期し、Editor でビューを操作しながらランタイム画像をプレビューできます。使用手順:
- Samples の
SceneGameCameraSyncスクリプトをシーン内のカメラ(Camera)GameObject にアタッチします。 - カメラ操作スクリプト(デフォルトは
CameraOperate)を無効化します。 - Play ボタンをクリックして Play モードに入ります。
これで、Scene ウィンドウでカメラを操作すると、Game ウィンドウのカメラがそれに応じて同期されます。

カメラオブジェクトに SceneGameCameraSync スクリプトをアタッチし、CameraOperate スクリプトを無効化
注:
カメラ同期は Scene ウィンドウから Game ウィンドウへの同期のみ対応しており、Game ウィンドウから Scene ウィンドウへのカメラ操作の同期には対応していません。