Search Unity

実行中のアプリでの情報取得、編集が可能「UnityChoseKun」の解説

はじめに

(本記事で紹介するツールは、ユニティ・テクノロジーズ・ジャパンの社員が個人的に開発・利用していたもので、この度Unityユーザーの皆さんにも自由にご利用いただけるよう無償公開したものです。ツールの使用許諾などはリポジトリのREADME、LICENSEテキストをお読みください。原則として公式サポートはございません)

UnityChoseKunはUnityエディタ上のシーンをアプリケーション上のシーンと同期させるツールです。同様のツールとして、UnityPlayerSyncというツールも有りますがそちらは以下の様な違いがあるそうです。

UnityChoseKunはアプリケーション上のHierarchyの情報及び必要最低限のComponentの情報を取得し、その情報をアプリケーションへダイレクトに反映し、UnityPlayerSyncはアプリケーションのHierarchyをUnityEditor上にそのまま再現し、変更された内容をアプリケーションに反映します。 その為、UnityPlayerSyncはUnityChoseKunよりも得られる情報量が多い一方、アプリケーションとUnityEditorの同期にかかる時間はUnityChoseKunの方が短くなっています。

例えば、アプリケーションのパラメーターを調整してパフォーマンスチューニングや見た目の調整を行うような用途であればUnityChoseKunが適しています。 一方、UnityPlayerSyncは通常のUnityEditorのワークフローと殆ど変わらないGUIで操作することが出来る為、エンジニア以外のクリエーターでも直観的に操作が出来るというメリットがあります。

インストール

RemoteConnectをインストールする

このツールではRemoteConnectも使用しています。まずはこちらをインストールします。

UnityエディタのメニューからWindow-> PackageManagerと選択し、Package Managerウィンドウを開きます。

ウィンドウの左上にある+のアイコンをクリックし、「Add package from git URL...」を選択します。

入力欄にhttps://github.com/katsumasa/RemoteConnect.gitと入力し、「Add」ボタンを押すとインストールが行われます。

UnityChoseKunをインストールする

RemoteConnectをインストールした時と同じ手順で最後の入力はhttps://github.com/katsumasa/UnityChoseKun.gitと入力し、「Add」ボタンを押すとUnityChoseKunのインストールが行われます。

実際に使ってみる

アプリへビルドした時に同期処理を行いたいシーンにUnityChoseKun.prefabを追加した後にアプリをビルドします。

Build SettingsではDevelopment BuildAutoConnect Profilerにチェックを付けておいて下さい。なお、WindowsやMacアプリとしてビルドする場合にはフルスクリーンではなく、ウィンドウモードで起動するアプリとしてビルドしておくと後の操作がし易いのでオススメです。

アプリ上での設定を確認

シーン内に読み込まれたアセットが想定通りになっているかやアプリ上での各種設定についての確認ができます。

例えばTimeについての情報を確認したい場合には矢印の部分のドロップダウンリストからUnityEngine.Timeを選択し、

Pullボタンをクリックするとアプリ上からデータを取得できます。

現在、UnityChoseKunで確認できる情報は以下となります。

項目名補足
UnityEngine.Application
UnityEngine.Android.Permission
UnityEngine.Component
UnityEngine.QualitySettings
UnityEngine.Rendering.GraphicsSettings
UnityEngine.Rendering.OnDemandRendering
UnityEngine.Rendering.Universal.UniversalRenderPipelineGlobalSettingsUnity 2021.2以降のみ対応。
UnityEngine.ScalableBufferManager
UnityEngine.Screen
UnityEngine.Shader
UnityEngine.SortingLayer
UnityEngine.Sprite
UnityEngine.SystemInfo
UnityEngine.Texture
UnityEngine.Time

項目名は基本的にAPIのクラス名に対応しているので、表示されているデータが何かについてはUnityのスクリプトリファレンスのページで対応するAPIを確認する事で確認できます。

例えばUnityEngine.QualitySettingsPixel Light Countの値は何を示しているか確認したい場合には該当するUnityのスクリプトリファレンスのページを開き、空白を削除したpixelLightCountという文字でページ内検索をすると確認できます。

アプリ内のシーンを変更

UnityChoseKunには実行中のアプリのシーンの内容を変更する機能も付いています。

UnityエディタのメニューからWindow > UTJ > UnityChoseKun > Player Hierarchyと選択するとこの様なウィンドウが表示されます。ここでReloadボタンを押す事でアプリ側から現在表示中のシーンの情報が取得され表示されます。

Hierarchyビューの様にシーン情報が表示されます。

このPlayer Hierarchyウィンドウでオブジェクトを選択するとPlayer Hierarchyウィンドウと一緒に表示されたPlayer Inspectorウィンドウでオブジェクトの情報を取得を確認できます。

このPlayer Inspectorウィンドウで編集を行うと即座にアプリ上のシーンに反映されます。その為、アプリを実行したまま様々な変更をした時の実機での動作状況を確認する事ができます。

なお、ドキュメントによるとComponentの編集については以下の様な制限があるそうです。

すべてのComponentの内容を編集出来る訳ではなく、現時点では一部のComponentに限定されています。 非対応のComponentに関しては、Componentのenableのみ編集可能となっています。

注意点

以下の制限が有ります。

  • Script Debuggingと併用できません。必ずScript DebuggingをOFFにした上でビルドを行ってください。
  • Texture,Shaderに関しては内容の確認のみで、変更を行うことは出来ません。
  • Materialが参照しているShader/Textureを変更する為にはTexture/ShaderのPullを先に実行する必要があります。
  • Unity2018では以下の機能に対応していません。
    • Materialが参照しているTextureの差し替え

おわりに

実行中のアプリでの情報取得、編集が可能な「UnityChoseKun」、よろしければ使ってみて下さい。

この記事はいかがでしたか?