Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uisawara/unity-settingswitcher
Switch unity settings from a structured configuration file
https://github.com/uisawara/unity-settingswitcher
unity unity3d
Last synced: 5 days ago
JSON representation
Switch unity settings from a structured configuration file
- Host: GitHub
- URL: https://github.com/uisawara/unity-settingswitcher
- Owner: uisawara
- License: mit
- Created: 2019-08-03T02:05:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-12-14T23:54:11.000Z (almost 4 years ago)
- Last Synced: 2024-02-08T06:30:35.483Z (9 months ago)
- Topics: unity, unity3d
- Language: C#
- Homepage:
- Size: 490 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
** Warning
作成中につき各種仕様は変更の余地が多々あります.
# unity-settingswitcher
* データ駆動で Unity の各種設定 (BuildSettings, PlayerSettings, XRSettings等) をできるようにする Editor拡張です。
* 名前付きで設定を定義して、それら設定を組み合わせて Unity設定を作ることができます。概念図
![Screen Shot 2019-12-13 at 16 06 08](https://user-images.githubusercontent.com/4578728/70777373-ea4d0b00-1dc2-11ea-944c-fc4d78ce8948.png)
設定例と設定切替Window
![Screen Shot 2019-12-13 at 16 08 22](https://user-images.githubusercontent.com/4578728/70777368-e6b98400-1dc2-11ea-8d14-d96432bb95fe.png)
* 設定ファイルでは名前付きで設定(Setting)を定義します。
* SettingではUnityの各種設定(BuildSettings, PlayerSettings, XRSettings)にセットする値を定義します。
* 可能なこと
* 他Settingを継承したSettingの定義
* Settingのグループ分け
* SettingSwitcherウィンドウからのSetting切替
* Settingの有効・無効の切替
* SwttingSwitcherウィンドウのSettingリストへ非表示なSettingの定義
* 複数設定ファイルでの設定定義(v0.0.4)* ※Settingは他のSettingの設定を継承(inherit)して差分設定を作ることができます。
* ※Setting名は"/"で区切ることでグループ化することができます。(現在のところグループは1階層のみ)
* ※各グループ内で選択してアクティブにできる設定は1つのみ## 利用例
- PC向けとVR向け、develop向けとproduction向けを切り替える。
例)
![unity-settingswitcher-sample](https://user-images.githubusercontent.com/4578728/62419417-8438d480-b6ba-11e9-8c12-69abba41261e.png)
* 設定例
* PC用設定を継承したWindows64向け設定とDevelop向け設定をマージしたものをUnityへ反映する
* VR用設定を継承したSteamVR向け設定とProduction向け設定をマージしたものをUnityへ反映する## 開発環境
* Unity 2018.4.12f (他バージョンのUnityは未検証)
* MacOSX Catalina Version 10.15.1## 使いかた
### Unity PackageManager版
- 導入
- Packages/manifest.jsonへ以下を追記します。
```
{
"dependencies": {
"work.mmzk.libs.minijson": "https://github.com/uisawara/unity-minijson.git",
"work.mmzk.libs.unitysettingswitcher": "https://github.com/uisawara/unity-settingswitcher.git"
}
}
```- 初期設定
- UnitySettingSwitcherウィンドウを開く。(Window->Unity Setting Switcherを選択か、CMD+E)
- Packages/UnitySettingSwitcher/Templates/settings/Settings.jsonをAssets/へコピーする
- Assets/Settings.jsonをテキストエディタ等で編集して設定を定義する### unitypackage版 (deprecated / いずれPackageManagerのみになります)
- 導入
- MiniJSONが必要です (https://gist.github.com/darktable/1411710)## ファイル構成
### ディレクトリ構成
/
settings.json .. 設定定義ファイル
settingsselected.local.json .. 選択されている設定を保存しているファイル### settings.json JSON構造
- settings : array
- name : string .. 設定名
- scene_list : array
- シーンファイル(.scene)パス
- player_settings : object
- 設定キー名(UnityのBuildSetting等該当クラスのpublic-staticメンバ名) : 値(string,bool,int,floatのみ対応)
- xr_settings : object
- keyValues : ※player_settings同様- 設定名
- "."で始まっているとUnitySettingSwitcherウィンドウの設定一覧上に非表示になる。
- player_settings
- UnityのPlayerSettingsクラスに対しての設定値
- xr_settings
- UnityのXRSettingsクラスに対しての設定値## 補足
- 設定の結合ルール
- 設定は、グループごとの選択中な設定を結合したもの
- 設定の結合順序
- 選択されている設定の定義されている順
- 継承構造の子側から親側に順次
- JSONで記述された設定はC#のリフレクションを用いてBuildSettingsクラス等のpublic staticメンバーへ反映している。