(:3[kanのメモ帳]

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

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発した新作VRソフトです!


エディタ拡張

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の最大最小サイズや現在のサイズを取得したり設定したりする方法の紹介です! イメージとしては以下のような感じ。…

Steamの実績のローカライズ(ローカリゼーション、翻訳)に使うVDFファイルをエクセルやスプレッドシートのデータから変換して作成【Unity】【Steam】【エディタ拡張】

この記事でのバージョン Unity 2019.4.1f1 NPOI 2.2.1 はじめに Steamの実績のディスプレイ名(名前)や説明はローカライズ可能ですが、一個一個入力するのは結構大変です。 一括で設定する事も出来るのですが、それにはVDFという聞き慣れない形式のファイルで…

シーン上のモデルを検索しポリゴン数が多い順に表示するエディタ拡張【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2018.4.23f1 はじめに UnityはGame Viewの右上にあるStatsを押すことで現在カメラに映っている範囲でのポリゴン数(Tris)等を表示する事が出来ますが、 残念ながら映ってない所のポリゴン数の合計だったり、そ…

Application.logMessageReceivedでログを取得 【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2018.4.19f1 はじめに UnityのConsoleには様々なログが表示されます。 Debug.Log("普通のログ"); Debug.LogWarning("警告"); Debug.LogError("エラー"); Debug.Assert(false, "アサート"); try { int a = 1, …

EditorUtility.DisplayCancelableProgressBarで途中でキャンセルも出来る進捗状況(プログレスバー)の表示【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2018.4.19f1 はじめに 以前、エディタ拡張で進捗状況を表示するUI、いわゆるプログロレスバーの実装方法について紹介した事がありました。 今回はこれの途中でキャンセルできるバージョンのご紹介です!イメ…

Unityエディタでプロジェクトを(初回)起動した時の判定【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2018.4.17f1 はじめに 今回はUnityエディタでプロジェクトを「(初回)起動した時に処理をしたい」場合の実装方法の紹介です。なお同様の方法で、逆に「(初回)起動時だけは処理をしない」みたいな実装も可能で…

Unity Recorderを使ってエディタを再生した時に自動で録画を行う【Unity】【アセット】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2018.4.13f1 UnityRecorder 2.0.3 はじめに 以前、Unity Recorderというエディタでプレイ中のゲーム内容を記録し、動画やGIFなどの様々な形式で保存が出来るアセットを紹介しました。 Unity Recorder - Asset…

GUIDを用いてアセットを管理する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2018.4.6f1 はじめに 以前「移動する可能性のある任意のアセットやディレクトリ(フォルダ)のパスを取得する方法」という記事を投稿した際に GUIDで管理する方法を教えてもらいました。 個人的にはGUIDで管理…

移動する可能性のある任意のアセットやディレクトリ(フォルダ)のパスを取得する方法【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2019.2.15f1 はじめに 前回Unityで使えるAudioManagerというものを公開したのですが、 この実装の際にBGMやSEなどのディレクトリへのパスを知りたいという状況がありました。 普通ならAssets/AudioManager_Ka…

SceneView上でクリックした時などのイベントを取得する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 2018.4.8f1 はじめに 今回はタイトル通り今回はSceneView上でのイベントを取得する方法のご紹介です! なお、エディタを再生していても、いなくても取得出来ます。 Event.currentとSceneView.onSceneGUIDeleg…

Addressable Assetsのアドレスの重複を検知する【Unity】【Addressable Assets】【エディタ拡張】

Addressable Assetsとは エディタ拡張とは この記事でのバージョン Unity 2018.4.8f1 はじめに Addressable Assetsのアドレスはファイル名とは別に自由に設定できますが、なんと同じアドレスを設定する事が出来てしまいます。 しかも設定時、ロード時共にエ…

外部からは値が参照出来ない形に実装されているScriptableObject等の内容を無理やり取得する【Unity】【ScriptableObject】【エディタ拡張】【C#】

この記事でのバージョン Unity 2018.4.8f1 はじめに アセットストアのアセットや外部SDKなどをUnityで使う際、ScriptableObjectが使われてる事はよくあります。 そしてそのScriptableObjectの値を使いたいのに、外部からは取得出来ない形に実装されていると…

Addressable Assetsのアドレスとラベルを管理する定数クラスを自動生成する【Unity】【Addressable Assets】【エディタ拡張】

エディタ拡張とは Addressable Assetsとは この記事でのバージョン Unity 2018.4.8f1 Addressables 1.2.4 はじめに Addressable Assets System(AAS)はアセットのロード時にアドレス(文字列)を用います。一応、AssetReference等を使って、文字列を使わない使…