メインコンテンツまでスキップ

LiveClassAsset で任意のプロパティを公開する

警告

実験的な機能が多く、破壊的な仕様変更が入ることがあります。

Live Class Asset を使うと、スクリプトを書かずに、シーン上のコンポーネントのプロパティやメソッドをリモートアプリから操作できるようになります。Unity の組み込みコンポーネントやサードパーティ製のコンポーネントのように、属性を付けられないクラスも公開できます。

自作のスクリプトに属性を付けてコードで公開する方法は、LiveProperty でリモートアプリにパラメータを公開する を参照してください。

このページでは、AudioSource の音量をスライダーで操作し、再生・停止をボタンで行えるようにする例で手順を説明します。

仕組み​

公開には次の 3 つが関わります。

要素役割
Live Class Assetどのクラスの、どのメンバーを公開するかを宣言するアセット。シーンに依存しない
適用先アセットを有効にする場所。Project Settings(プロジェクト全体)か、Remote Control Container(そのシーン・セットだけ)
Remote Control Container の Objectsどのオブジェクトを公開するか。登録した GameObject に付いているコンポーネントのうち、宣言されたクラスのものが公開される
備考

Light(enabled / color / intensity / shadows / spotAngle)と PlayableDirector(Play / Stop / Pause)は、LiveStudio の Live Studio System プレハブが適用する UnityBasicLiveClasses で公開済みです。これらは GameObject を Objects に登録するだけで操作できます。

1. Live Class Asset を作る​

  1. Window > Lilium Remote Control > Live Class Asset を開きます。
  2. ヘッダーの Preset の横にある New を押し、保存先を指定してアセットを作成します。

Project ウィンドウの Create > Live Studio > Remote Control > Live Class Asset から作成して、Preset に割り当ててもかまいません。

2. クラスを追加する​

Classes タブの左側(クラス一覧)で、公開したいクラスを追加します。

  • + — すべての Component / ScriptableObject クラスから検索して選びます(名前空間ごとにグループ化されています)。
  • From Selected — Hierarchy で選択中の GameObject に付いているコンポーネントの一覧から、Add で選びます。

例では、AudioSource を持つ GameObject を選択して From Selected を押し、AudioSource の Add を押します。

Live Class Asset ウィンドウ

① クラスを追加する + / From Selected(手順 2) ② メンバーを追加する +(手順 3) ③ volume のスライダー設定(手順 4)

クラス一覧には、他のアセット(UnityBasicLiveClasses など)で宣言済みのクラスも、そのアセット名とともに表示されます。

3. メンバーを公開する​

  1. クラス一覧で追加したクラスを選びます。
  2. 右側の詳細ペインの + を押して Add Member ウィンドウを開きます。
  3. 公開したいメンバーにチェックを入れます。ウィンドウは開いたままにできるので、複数のメンバーをまとめて選べます。

候補に出るメンバーは次のとおりです。

  • public なプロパティ・フィールドのうち、型が bool、整数、float、double、string、enum、Vector2〜Vector4、Quaternion、Color、Rect、Bounds などのもの(setter のないプロパティは (read only) と表示されます)
  • 引数のない public メソッド(リモートアプリではボタンになります)

例では、volume、mute、Play、Stop にチェックを入れます。

Add Member ウィンドウ

リモートアプリに表示されるラベルは、メンバー名から自動で作られます(useColorTemperature → Use Color Temperature)。

4. 表示と保存の設定をする​

詳細ペインの上部で、クラス全体の表示を設定します。

項目内容
Categoryリモートアプリでの分類。空欄の場合は Binding
Iconリモートアプリで表示するアイコン(Material Icons の名前)。空欄の場合はクラスの既定のアイコン

その下に、公開したメンバーごとの設定が並びます。

項目内容
Persistableライブシーン(*.live.json)に値を保存・復元する(既定でオン)
Read Onlyリモートアプリでは表示のみにし、書き込みを禁止する
Laneライブデータへの収録方法。通常は Auto のままでかまいません
Control表示コントロール。SliderControl(Min / Max / Step)でスライダー、HideControl でリモートアプリの UI から隠す。None は型の既定のコントロール
Helpリモートアプリに表示するヘルプテキスト
Section Titleこのメンバーからセクションを始める。入力すると Subtitle と Icon も設定できる
Icon(メソッドのみ)ボタンに表示するアイコン(Material Icons の名前)

例では、volume の Control に SliderControl を選び、Min を 0、Max を 1 にします(手順 2 の画像の ③)。

  • 各メンバーの右上の ▲ / ▼ で表示順を入れ替え、✕ で公開を取り消せます。
  • 各メンバーの右上のバッジ(State / Event / None)は、そのメンバーがライブデータにどう収録されるかを示します。

5. アセットを適用する​

作ったアセットは、どこかで適用しないとリモートアプリに反映されません。適用されていない間は、ウィンドウのヘッダーに警告が表示されます。

  • プロジェクト全体に適用する(通常はこちら) — Edit > Project Settings > Lilium Remote Control の Live Class Assets リストに追加します。最初に編集したときにプロジェクト用の設定アセット(Assets/Settings/RemoteControlProjectSettings.asset)が作られ、ビルドにも含まれます。
  • シーン・セットごとに適用する — そのシーンの Remote Control Container の Assets リストに追加します。セット(.set.lsb)の中のコンテナに入れると、そのセットを読み込んでいる間だけ有効になります。

Project Settings の Lilium Remote Control

① Lilium Remote Control ページ ② Live Class Assets に作成したアセットを追加する

6. オブジェクトを登録する​

公開したいコンポーネントを持つ GameObject を、シーンの Remote Control Container に登録します。

  1. Remote Control Container GameObject を選択し、Remote Control Container コンポーネントの Objects の + を押します。
  2. 型ドロップダウンから LiveGameObject を選びます。
  3. Reference に、AudioSource を持つ GameObject をドラッグして割り当てます。

Remote Control Container の Objects

① + で項目を追加 ② LiveGameObject を選ぶ ③ Reference に GameObject を割り当てる

登録済みの GameObject であれば、この手順は不要です。宣言したクラスのコンポーネントは、それだけで公開されます。

ヒント

GameObject ではなく、特定のコンポーネントだけを独立した項目として登録したい場合は、LiveGameObject の代わりに LiveComponent を選び、Reference にそのコンポーネントを割り当てます。

7. 動作確認​

Unity Editor で Play するか、ビルドしたアプリを起動してリモートアプリを接続します。リモートアプリの「ライブシーン」ページで GameObject を開くと、AudioSource の Volume がスライダーで、Play / Stop がボタンで表示されます。

Live Class Asset ウィンドウや Project Settings で行った編集は、ドメインリロードを待たずにその場で再適用されます。

関連リンク​