unityでいってみよう!

unityがチョットワカル位の人のブログ

アプリケーションとUnityEditorを同期する「UnityPlayerSync」を紹介してみよう!

概要

github.com

UnityPlayerSyncはUnityでビルドしたアプリケーションとUnityEditorを同期する機能を追加するパッケージです。 具体的にはアプリケーションで実行中の画面をUnityEditorのHierarchy Viewへ展開し、UnityEditor上で編集したGameObjectのパラメータをアプリケーション側へ反映することが出来ます。

実行例

インストール

GitHubからリポジトリをcloneします。また、UnityPlayerSyncはRemoteConnectのパッケージも使用している為、こちらも併せてGitHubからcloneします。

コマンドラインからそれぞれのリポジトリをcloneする場合、次のコマンドを実行します。

git clone https://github.com/katsumasa/RemoteConnect.git
git clone https://github.com/katsumasa/UnityPlayerSync.git

使い方

同期を行いたいSceneにUnityPlayerSyncPrefabを配置してアプリケーションをビルドします。 複数のSceneで同期を行いたい場合、最初のSceneにUnityPlayerSyncPrefabを配置し、Is Dont Destroy OnLoad Enabledプロパティに✔を入れるのが良いでしょう。

あとはアプリケーションを実行し、目的のSceneになったらHierarcyで右クリックでコンテキストメニューを開いてSyncを選択するだけです。しばらく待っていると、同期が完了しUnityEditor上にアプリケーションのScene情報が展開されます。

Editor上で編集した内容をアプリ側に反映させたい場合、Inspecterからコンテキストメニューを表示してComponent単位でSyncを実行、もしくは、HierarchyでGameObjectを選択して右クリックでコンテキストメニューを表示させてからSyncを実行します。

動作環境

Unity2020.3で開発を行っていますが、Unity2018以降であれば動作すると思います。 但し、ScriptingBackendがMonoに限定される為、iOSでは残念ながら動作しません。

その他

似ている機能を持つパッケージとしてUnityChoseKunがありますが、あちらはデバイスで実行されているアプリケーションをUnityEditorから直接調整するというコンセプトですが、UnityPlayerSyncはアプリケーションで実行されている内容を一旦、UnityEditorに展開して必要に応じて書き戻すコンセプトになっています。

UnityChoseKunの方がシリアライズしているデータ量が少ない為、同期に必要な時間が短く、基本的にはScriptingBackendがIL2CPPの場合でも動作するというメリットがありますが、UnityPlayerSyncの方がビジュアル的な情報量が多い為、使いやすいと思います。

UnityChoseKunはエンジニア向け、UnityPlayerSyncはアーティスト向けに制作しましたが、状況に応じて使い分けて頂ければと思います。

バグや質問があった場合、Issue TrackerDiscussionsがあるのでそちらを利用するのが良いでしょう。

以上です。