Home

Awesome

UnityChoseKun

GitHub package.json version GitHub code size in bytes

English Ver. README

概要

Unityで開発したアプリを実機上で実行している時に、GameObjectの内容をほんの少しだけ変更したいだけなのに、ビルド完了迄長時間待たされることで、貴重な開発時間を無駄にして悔しい思いをした事は無いでしょうか。 UnityChoseKunは再ビルドを行うこと無く、UnityEditor上で開発機で実行中のアプリの調整を行う為のEditor拡張です。

<img width="852" alt="UnityChoseKunDemo02" src="https://user-images.githubusercontent.com/29646672/137236126-f7b9c064-3dcc-41d5-9ce6-9f9175d9d315.gif">

Demo

https://user-images.githubusercontent.com/29646672/220570479-85ea8eff-75cf-401b-92bb-4cb5ae4cd205.mp4

このプロジェクトで出来ること

動作環境

下記の内容で動作の確認済を行っています。

Universal RPに関しては下記の組み合わせで動作確認を行っています。

UnityURP
2020.3.27f110.8.1
2021.2.15f112.1.5
2021.3.1f112.1.5

対応しているClassについて

Classの追加方法に関してはこちらをご覧ください: Howto_add_class.md

注意事項・免責事項

セットアップ

UnityChoseKunは別途RemoteConnectパッケージを使用します。UnityChoseKunと合わせて取得して下さい。 取得したパッケージを任意のUnityプロジェクトへ追加することでセットアップは完了です。

パッケージの取得方法

UnityChoseKunはGitHubのリポジトリで管理されています。 セットアップ方法にはいくつかありますが、PackageManagerから取得する方法がもっとも簡単でお勧めです。

コンソールからリポジトリを取得する

コンソールからリポジトリを取得する場合、下記のコマンドを実行します。

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

GitHubから直接取得する

  1. WebブラウザーでUnityChoseKunRemotoConnectのWebページを開く
  2. 画面右上緑色のCodeと記述されているプルダウンメニューからDownload ZIPを選択しZIPファイルをダウンロード
  3. ZIPファイルを解凍しUnityProjectのAssetフォルダ以下へ配置する。

[お勧め]PackageManagerから取得する

  1. Window > Package ManagerでPackage Managerを開く
  2. Package Manager左上の+のプルダウンメニューからAdd package form git URL...を選択する
  3. ダイアログへhttps://github.com/katsumasa/RemoteConnect.git を設定し、Addボタンを押す
  4. Package Manager左上の+のプルダウンメニューからAdd package form git URL...を選択する
  5. ダイアログへhttps://github.com/katsumasa/UnityChoseKun.git を設定し、Addボタンを押す
<img width="800" alt="image" src="https://user-images.githubusercontent.com/29646672/183788409-3c1e745a-ac84-49f0-96be-3c4d26ed369f.png">

アプリケーションビルド時の設定

機能紹介

Player Hierarchy

EditorのHierarchy同様にGameObjectの親子関係を変更したり、右クリックからのモーダルダイヤログでGameObjectを生成したり、基本的なComponentを追加することが出来ます。 Window > UTJ > UnityChoseKun > Player Hierarchyより起動します。

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/137240924-d089e4b6-9ff7-4bbe-ba31-f19cc7459aca.jpg">

Reload

実機で実行されているアプリケーションのScene情報を分析し、Hierarchy Treeとして展開します。 まず初めにReloadを実行し、Sceneの情報を取得することからスタートします。

NOTE

Player Inspector

実機で実行しているアプリケーションに対する情報の表示や内容の編集を行う為のWindowです。 プルダウンメニューから表示する内容を切り替えて使用します。
Window > UTJ > UnityChoseKun > Player Inspectorより起動します。

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183793924-afa0646c-5348-4c48-a19a-2934cc9bf5f3.png">

Inspector

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

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183794558-9c8eccb9-9c4c-41e7-902a-71f1c27eb340.png">

UnityEngine.Application

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183864921-576f98e7-012f-42a0-8d72-b70e17b9f89c.png">

Application Classのstaticメンバーに関する内容を確認することが出来ます。(編集は出来ません) また、Application.Quit()を実行することが可能です。

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183794833-2095509b-baf6-4bf8-a4ee-326b01c525e4.png">

UnityEngine.Android.Permisson

プラットフォームがAndroidの場合、パーミッションの内容を確認することが出来ます。(編集は出来ません)

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183795746-54fefac2-22a5-4097-8b4c-435ba7d2839f.png">

UnityEngine.Component

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183796160-8bf2b10a-78ba-4b8b-b5cc-21ed4b071bfb.png">

Scene上に存在するComponentの種類と数をカウントします。 本Editor拡張で未対応なComponentは規定Classにカウントします。

UnityEngine.QualitySettings

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183796486-5b495e59-b575-4240-ba53-044ee76abefb.png">

QualitySettingの内容を確認することができます。(編集は出来ません)

UnityEngine.Rendering.GraphicsSettings

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183797004-c39e487e-7192-4fa7-a41b-956e6e1ab2de.png">

GraphicsSettingsの内容を確認することができます。(編集は出来ません)

UnityEngine.Rendering.OnDemandRendering
<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183797592-040a4d0b-fb93-47ea-982b-8d700e58eb47.png">

OnDemandRenderingのパラメーターの内容の表示と編集を行うことが可能です。

ScalableBufferManager

<img width="385" alt="image" src="https://user-images.githubusercontent.com/29646672/183798870-74027094-e9ac-4a57-a213-c23cb9c55deb.png">

ScalableBufferManagerを編集することが出来ます。

NOTE:この機能を使用する場合、下記の条件を満たしている必要があります。

UnityEngine.Screen

Screen Classのstaticメンバーに関する内容を編集することが出来ます。

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183799340-576bbf10-1d98-4193-8451-d54a7fa1ae9d.png">
UnityEngine.Shader

アプリケーションから参照されているShader及びResourcesに含まれるShaderの一覧を表示します。

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183800592-298c8320-3ca9-41a1-aa63-b30509db0a3b.png">

Materialが参照しているShaderを変更する場合は、事前にPullを実行しておく必要があります。

UnityEngine.SortingLayer

実機上のSortingLayer.layersを取得します。

<img width="385" alt="image" src="https://user-images.githubusercontent.com/29646672/183801143-980cabdf-785e-416b-b8f8-3d4485c83138.png">

※SpriteRendererのSortingLayerを変更する場合、事前にPULLを実行する必要があります。

UnityEngine.Sprite

実機で実行されているアプリのScene上から参照されているSprite及びResourcesに含まれるSpriteの一覧を表示します。

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183801515-e9023ac3-ffde-497f-9bf0-73abacd63c2b.png">

※SpriteRendererのSpriteを変更する場合事前にPullを実行する必要があります。

UnityEngine.SystemInfo

SystemInfoのメンバーの値を取得します。

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183801676-db187c2c-78b9-4dc0-87e8-6f6cda341808.png">
UnityEngine.Texture

Scene内から参照されているTextureとResourcesに含まれているTextureの一覧表示します。

<img width="400" alt="image" src="https://user-images.githubusercontent.com/29646672/183800913-c036d071-1c75-4d69-929b-3327c1f0b09a.png">

Materialが参照しているTextureを変更する場合は、事前にPullを実行しておく必要があります。

UnityEngine.Time
<img width="385" alt="image" src="https://user-images.githubusercontent.com/29646672/183802337-3cd64b21-8b27-4111-b4b8-8b575e550ab5.png">

Time Classのstaticメンバーに関する内容を編集することが出来ます。

※編集可能なメンバーはRead Only以外のメンバーに限定されます。詳しくはスクリプトリファレンスをご確認下さい。

UnityEngine.Profiling.Profiler

UnityEngine.Profiling.ProfilerクラスのAPIを使用してMemory関連の情報を取得します。

<img width="400" alt="image" src="https://github.com/user-attachments/assets/cef5ef47-0d27-4f75-a6de-8cbac1d01476">

FAQ

UnityPlayerSyncUnityChoseKunの違いを教えて下さい。

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

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

その他