概要
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 TrackerやDiscussionsがあるのでそちらを利用するのが良いでしょう。
以上です。