(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発しているゲームです!


エディタ拡張

SpriteAtlasから取得(Clone)した画像を使ってるImageを検索するエディタ拡張【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2022.3.16f1 はじめに 以前、シーンを開いた時等に「Could not extract GUID……」や「Broken text PPtr. GUID……」とエラーが出る場合の原因が、Unityを再生していない時にエディタ拡張でSpriteAtlasからSprite…

Prefab Modeになっているか(プレハブを開いてるか)を判定する方法【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2022.2.8f1 はじめに UnityではPrefabをダブルクリック等で開くと、そのPrefabだけの画面になり、さらにHierarchyにPrefabの名前が表示されるいわゆるPrefab Modeになります。 今回はこのPrefab Modeになって…

HDR(ハイダイナミックレンジ)をエディタ拡張で使う方法【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2022.2.8f1 はじめに 前に「HDR(ハイダイナミックレンジ)をInspectorやプログラムで使う方法」という記事を書きましたが、 今回はそのエディタ拡張バージョンです! HDR(ハイダイナミックレンジ)をエディタ拡…

エディタを再生していない時にExecuteAlways(ExecuteInEditMode)でUpdateを実行し続ける方法【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2021.3.11f1 はじめに UnityではExecuteAlways(ExecuteInEditMode)を使う事でエディタが再生していない時でもAwakeやUpdate等のメソッドが実行出来ます。 ただし、Update等の更新処理はSceneに変化があった時…

SceneViewでマウス(トラックパッド)のボタンを離した時のイベント(EventType.MouseUp)が発生しない時の対処法【Unity】【エディタ拡張】

この記事でのバージョン Unity 2021.3.11f1 はじめに Unityエディタが再生してない時でもMonoBehaviourの各種メソッドが実行出来るExecuteAlwaysとシーンビューでイベントが発生した時を検知出来るSceneView.duringSceneGuiを組み合わせる事でSceneViewでマ…

ExecuteInEditModeを使うとPrefabモードで再生した時に「Risk of unwanted modifications」と警告が出るので後継のExecuteAlwaysを使おうという話【Unity】【エディタ拡張】【属性】

エディタ拡張とは 属性とは この記事でのバージョン Unity 2021.3.11f1 はじめに UnityではExecuteInEditModeという属性をMonoBehaviourを継承したクラスに付ける事で、プレイモード(Unityエディタ再生中)でなくともStartやUpdateを実行する事が出来ます。 u…

コンポーネントやその値のコピーとペーストをプログラムから行う方法【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2021.3.4f1 はじめに UnityではInspectorの⁝からコンポーネントをコピーしたりペーストしたり出来ますが、 今回はこれをプログラムから行う方法の紹介です! UnityEditorInternal.ComponentUtility

特定のEditorWindowが開いてるかどうか確認したい時はHasOpenInstances【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2021.3.4f1 はじめに Unityのエディタ拡張には簡単にウィンドウを作る事が出来るEditorWindowがあります。 using UnityEditor; /// <summary> /// EditorWindowのサンプル /// </summary> public class EditorWindowSample : Edi…

現在再生しているシーンがビルドに設定されているか【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2020.3.25f1 はじめに 今回はタイトル通り現在再生しているシーンがビルドに設定されているかを判定する方法です! 「実際にリリースする時に使うシーンだけで処理を行いたい(行いたくない)」みたいな時に役…

Hierarchy上のオブジェクトを任意のPrefabと差し替える【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2021.1.23f1 はじめに UnityはAlt(option)キーを押しながらHierarchy上にPrefabをドラック&ドロップするとオブジェクトを差し替える事が出来ますが、 位置、角度、スケールは配置されてる物の値ではなくPrefa…

Hierarchy上の同じモデル(メッシュ)のオブジェクトを探してまとめる【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2020.3.25f1 はじめに 今回は「Hierarchy上の同じモデル(メッシュ)のオブジェクトを探してまとめる」という処理をするエディタ拡張を作ったのでその紹介記事です! 使い所としては買ったアセットのサンプルで…

エディタ拡張で画像表示(一部だけの表示も)【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2020.3.25f1 はじめに 今回はタイトル通りエディタ拡張で画像を表示する方法の紹介で、画像の全体を表示する物と、一部分だけ表示する2パターンを紹介します。 なお、記事中の画像は以下のアセットを使ってお…

Missing (Mono Script)となったコンポーネントをプログラムで削除する方法 【Unity】【エディタ拡張】

この記事でのバージョン Unity 2021.1.16f1 はじめに 今回は元のスクリプトファイルが無くなり、Missing (Mono Script)となったコンポーネントをプログラムで削除する方法の紹介です! RemoveMonoBehavioursWithMissingScript

シーンビューにちょっとした情報を載せたい時はHandles.Labelが便利【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2021.1.16f1 はじめに 今回は「現在のHPを簡単に確認出来るようにしたいけどユーザに見せたいわけじゃない!」みたいなシーンビューにちょっとした情報を載せたい時に役立つ記事です! なお、記事中では以下…

指定したマテリアル(Material)が付いてるレンダラー(Renderer)の検索や置換をするエディタ拡張【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.17f1 はじめに 指定したマテリアルが付いてるレンダラーの検索や、検索したレンダラーのマテリアルを置換する事も可能なエディタ拡張を作ったので、今回はそれの紹介記事です! イメージとしては以下…

Terrainに合わせて同じ形のオブジェクトを作る【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.17f1 はじめに 今回は「Terrainで作った地形と同じ形のオブジェクトを作る」という感じの記事です。なお何のためにそんな事をするのかと言うと、ワープ時のテレポート先用のColliderにTerrainに合わせ…

Hierarchy上で非アクティブなオブジェクトをエディタ上で検索する拡張【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.17f1 はじめに 以前、Hierarchy上の非アクティブなオブジェクトを検索し、取得する方法という記事を書いたのですが、 これはプログラムで検索と取得をする方法で、エディタ上でパッと見つけたい時には…

ScriptableObject等のアセットの名前をプログラムから変更したい時はAssetDatabase.RenameAsset 【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.17f1 はじめに Unityのアセットの名前はProject上で簡単に変える事が出来ますし、しかも名前を変えても他からの参照が切れたりもしません。 今回はこれと同じ事をプログラムでやりたい時の話です! As…

アセット(ファイル)をドラック&ドロップで取得するエディタ拡張【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.17f1 はじめに 今回はアセット(ファイル)をドラック&ドロップで取得するエディタ拡張を作ってみた話です! ちなみに以前、Inspectorにファイルをドラック&ドロップしてパスを設定するという記事も書い…

Unityでファイルをダブルクリックした時の挙動を変えて、エディタ再生中にシーンアセットをクリックしたらそのまま開くようにする【Unity】【エディタ拡張】

エディタ拡張とは 属性とは この記事でのバージョン Unity 2019.4.17f1 はじめに Unityでは通常、再生中にシーンファイルをダブルクリックすると再生を停止してそのシーンを開きます。 しかしサンプルのシーンが大量にあるアセットみたいに、再生を続けたま…

Unityエディタを再生していない時(エディタ拡張時)に音を鳴らす【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.15f1 はじめに 今回はUnityエディタを再生していない時、つまりエディタ拡張時に音を鳴らす方法の紹介です! ちなみにビープ音を鳴らす方法は以前紹介していたりします。 using UnityEditor; //Editor…

ファイルやフォルダを開いたり保存したりするためのダイアログの表示【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.9f1 はじめに 今回はファイルやフォルダを開いたり保存したりする時のダイアログをUnityから表示する方法の紹介です! なお、あくまでUnityエディタだけで使える方法であり、ビルドした実際のゲーム中…

オブジェクトやPrefabが依存する(使っている)全てのアセットを取得する EditorUtility.CollectDependencies【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.9f1 はじめに 今回はオブジェクトやPrefabが依存する全てのアセットを取得するEditorUtility.CollectDependenciesというメソッドの紹介記事です。 roots に依存するすべてのアセットを計算し、取得し…

EditorWindowのOnGUIでマウスの位置を取得したい時はwantsMouseMoveを有効にする【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.9f1 はじめに Unityのエディタ拡張には簡単にウィンドウを作る事が出来るEditorWindowがあります。 using UnityEditor; /// <summary> /// EditorWindowのサンプル /// </summary> public class EditorWindowSample : Edi…

「Unityエディタを再生しているか」と「ビルド設定されているか」を気にせずにシーンをロード出来る拡張機能【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.9f1 はじめに UnityはSceneManager.LoadSceneやEditorSceneManager.OpenScene等、シーンを開く処理がいくつもありますがエディタを再生しているかや、ビルドに設定しているかによって使える物が変わり…

Unityのエディタ拡張時に非同期タスクの進捗状況を表示する Progress【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2018.4.6f1 はじめに Unityにはエディタ拡張時に進捗を表示するためのEditorUtility.Display(Cancelable)ProgressBarという物が用意されています。 そしてUnity 2020.1から、これに似た機能であるエディタ拡…

エディタ拡張でUnityを再生していない時でもコルーチンを使い非同期処理が行える EditorCoroutineUtility【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.5f1 はじめに UnityはMonoBehaviourのStartCoroutineを使うことで、簡単にコルーチンを実行し、非同期処理を行う事が可能ですが、 private void Start () { //StartCoroutineを使ってコルーチンを実行…

Odinで拡張されたエディタウィンドウ OdinEditorWindow【Unity】【アセット】【Odin】【エディタ拡張】

エディタ拡張とは 属性とは この記事でのバージョン Unity 2019.4.5f1 Odin 2.1.13 はじめに 色々な属性を追加して、Inspectorを使いやすくしたり、 シーン内を検証し、Inspectorでの設定に問題のあるオブジェクトを見つけたりも出来るOdinですが、 なんとエ…

メニューをプログラムから実行する EditorApplication.ExecuteMenuItem【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.2f1 UnityはMenuItemを使うことで簡単に独自の処理をするメニューを追加出来ます。 //ただログを出す [MenuItem("Tools/ShowLog")] private static void ShowLog() { Debug.Log("ログ"); } そしてこの…

EditorWindowの最小最大サイズや現在のサイズの取得と設定の方法【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.4.3f1 はじめに 今回はUnityのエディタ拡張でウィンドウを作成する際に使うEditorWindowの最大最小サイズや現在のサイズを取得したり設定したりする方法の紹介です! イメージとしては以下のような感じ。…