UnityEditor
UnityでExecuteAlwaysアトリビュートを付けたコンポーネントがアタッチされているシーンにおいて、 AssetBundleをビルドする際にスクリプトの処理が走ってしまう件についてまとめました。
自作クラス型のSerializedPropertyに値をセットする方法です。
UnityでReplaced Shaderを使ってレンダリング時にシェーダを差し替える方法です。
正規化されたAnimationCurveの入力フィールドを表示する方法です。
特定クラスのサブクラスをすべて取得する方法のメモです。 Unityのエディタ拡張のときによく忘れるのでメモ。
Playables APIを使ってUnity非再生時にモーションをプレビューする方法です。
エディタ拡張でLabelの文字列にリッチテキストを使って色を付けたりサイズを変えたりする方法です。
AssetBundleとそれが含む全Assetとの対応表をcsvで吐き出すスクリプトです。
Missingになっているコンポーネントを一括削除する方法です。
UnityでスクリプトからPrefab内のGameObjectを移動したり削除したりする方法です。 Unity2018.3からPrefabワークフローが変更されたのに伴い方法が変わったので紹介します。
EditorWindowなど、非ランタイム・非MonoBehaviorでUnityWebRequestを使った通信を行う方法です。
あるAssetが参照するすべてのAssetを取得する方法です。
UnityのSceneやPrefabやScriptableObjectはYAMLで書かれています。 この記事ではこれらのYAMLの中身を見て簡単な編集もしてみます。
シリアライズした配列の要素数をインスペクタから増やしたときに要素がコピーされるのを防ぐ方法です。
コンポーネントに設定したHideFlagsがPrefab化したときに消えてしまう問題とその対処方法です。
Timelineを拡張して、自由にプロパティをコントロールする4つの方法をまとめました。
PropertyDrawerでデフォルトのGUIを描画する方法です。 Inspectorを拡張する際には簡単にデフォルトGUIを描画できるのにPropertyDrawerだと難しいので作りました。
PropertyDrawerなどGUILayout系が使えない環境でMonoBehaviourのインスペクタを描画する方法です。 インスペクタはGUILayout環境を前提としているので結構hackyなことをしています。意外と大変でした。
Unity2018.3以降ExecuteInEditModeアトリビュートは廃止に向かっていくお話です。
Unityでセーフエリアをエディタ上でシミュレートする方法です。
自分用メモ。更新していくかもしれません。
Hierarchyの表示をカスタムする方法です。
ReorderableListの使い方です。
Unityのデフォルトのリスト表示は場合によっては結構見づらいので拡張してみました。
エディタ拡張ではプロパティをEditorGUILayout.PropertyField()などを使って描画します。 ただしこの方法だとすべてのプロパティを描画したいときに一個一個書いていく必要があります。 この記事ではすべてのプロパティを一気に描画する方法を紹介します。
こんな感じでクリックするとデバッグ用のメニューが開くドロップダウンを作ってみます。 レイアウトは自由に組めるので別にデバッグ用じゃなくてもいいのですが、今回はデバッグ用を想定して作っています。 デバッグメニューは目立つところに置くと邪魔にな…
あるフィールドの値に応じて別のフィールドの表示状態を切り替えるAttributeを作る方法です。
久々にエディタ拡張で盛大にハマったので自分用にメモしておきます。 Custom AttributeとCustom Property Drawerを組み合わせたらInspectorがうまく表示されなくなった件とその対応方法です。
シーンのGI設定を自動化する方法です。
シーンのGIの設定をチェックするツールです。