(:3[kanのメモ帳]

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

エディタ拡張

エディタ実行中だけ開くウィンドウの実装【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.5.1f1 はじめに 今回はタイトル通り、エディタ実行中だけ開くウィンドウのご紹介!イメージは以下の通り。 再生ボタンを押した時に表示され、終了ボタンを押した時に非表示にされる感じです。 WindowWhenEd…

独自のショートカットキー(ホットキー)を作成する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.5.1f1 はじめに エディタ拡張で便利な機能を作ったから、瞬時に呼び出せるようにしたい!機能にショートカットキーを設定したい!今回はそんな感じの記事です。 MenuItem

エディター上で選択しているオブジェクトを取得したり、任意のオブジェクトを選択したり【Unity】【エディタ拡張】

エディタ拡張とは デリゲートとは この記事でのバージョン Unity 5.5.1f1 はじめに 今回はエディターでの選択オブジェクトに関する諸々の話です。選択しているオブジェクトの情報を取得したい、任意のオブジェクトを選択したいそんな感じの時に役立つはずで…

Hierarchyの変更を検知する【Unity】【エディタ拡張】

エディタ拡張とは デリゲートとは この記事でのバージョン Unity 5.5.0p1 はじめに 今回はHierarchyの変更を検知する方法のご紹介。なお、エディタ上だけの方法なのであしからず。 EditorApplication.hierarchyWindowChanged

エディタ拡張で進捗状況を表示する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 今回はエディタ拡張でなんらかの処理を行っている時に、進捗状況を表示する方法のご紹介です!イメージとしては以下のような感じです。 EditorUtility.DisplayProgressBar

enumを作成するエディタ拡張【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 以前、定数を管理するクラスを作成するエディタ拡張という記事を書きました。 これはいわゆる定数クラスと呼ばれるクラスを生成するためのエディタ拡張です。 これ単体だとあまり意味はあり…

ビットフラグを使いやすくするアレコレ【Unity】【C#】【エディタ拡張】【拡張メソッド】【属性】

エディタ拡張とは 拡張メソッドとは この記事でのバージョン Unity 5.4.0f3 はじめに タイトルの通り、今回はUnity&C#で開発を行う際にビットフラグを使いやすくするアレコレのご紹介です! ビットフラグ

通知メッセージを表示する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 今回はUnityエディタ上で通知メッセージを表示する方法のご紹介!通知メッセージとは以下のような感じのやつです。 EditorWindow.ShowNotification

Inspectorにファイルをドラック&ドロップしてパスを設定する【Unity】【エディタ拡張】【属性】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 今回はInspectorにファイルをドラック&ドロップしてパスを設定する方法のご紹介です!イメージとしては以下の通り。 PathAttribute

Resources以外からアセットをロードする便利クラス【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 以前、Resources以外からアセットをロードする方法を紹介しました。 その時、AssetDatabaseを使えばResources以外からもアセットをロードできるが、Resources.LoadAllのようにディレクトリ…

PlayerPrefsをリセットするメニューを追加する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はタイトル通り、PlayerPrefsをリセットするメニューを追加するエディタ拡張の紹介です。 PlayerPrefsResetter

選択したオブジェクトに対する日本語のドキュメントを表示するためのエディターウィンドウ【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに UnityにはHelpというクラスがあります。 Unity ドキュメントにアクセスするためのヘルパークラスです このHelpクラスにあるShowHelpForObjectを使うと対象のヘルプページを開ける…

Inspectorにメソッドを実行するボタンを追加する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに 特定のメソッドをInspectorから実行できるようにしておくと便利な場合は多々あると思いますが、そんな時に一番楽なのはContextMenuだと思います。 //Inspectorの歯車アイコンにMet…

エディタを実行していない時にOnValidateでDestory【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに 以下のように、エディタを実行していない時にOnValidateでDestoryしようとするとエラーが出ます。 private void OnValidate (){ Destroy (gameObject); } Destroy may not be call…

AssetImporterをAssetPostprocessor以外で使う【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal AssetImporter さっそくですが、AssetImporterをAssetPostprocessor以外で使う場合はAssetImporter.GetAtPathを使ってパスからAssetImporterを取得します。 using UnityEditor; //Assets直…

Resources以外からアセットをロードする【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はResourcesディレクトリ以外から何かしらのアセットをロードする時の方法です。なお、エディタ上でしか機能しないのであしからず。つまり、エディタ拡張の時用ですな。 Asset…

現在のビルドターゲットに合わせてBundle IDを自動更新する【Unity】【エディタ拡張】

エディタ拡張とは デリゲート、イベントとは この記事でのバージョン Unity 5.3.4f1 Personal はじめに UnityはPlay settingsからBundle ID(Bundle Identifier)を設定できますが、各ビルドターゲット(プラットフォーム)ごとに設定はできません。 つまりBundl…

OnPreprocessTextureなどをディレクトリ移動時も実行する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに OnPreprocessTextureはテクスチャがインポートされた時に実行され、何かしらの処理を自動で行えるメソッドです。同じようなものにOnPreprocessAudio、OnPreprocessModelがあります…

Sprite Packerの設定を自動で行う【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに Unityには複数のスプライトをまとめて使えるSprite Packerという機能があります。 これを使うことでSetPass calls(旧DrawCall)を減らし、処理を軽くすることが出来ます。 このSpri…

ビルドするシーンを自動で設定【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに Unityでは使用するシーンはあらかじめ登録しておかなければなりません。 また、登録されていないのにロードしようとするとエラーが出ます。 手動で登録するとミスがおこるかもしれ…

再生開始や一時停止など、エディタの状態変更を取得【Unity】【エディタ拡張】

エディタ拡張とは デリゲートとは この記事でのバージョン Unity 5.3.4f1 Personal はじめに ------------追記Unity2017以降では仕様が変わったので、以下の記事をご覧ください。 ------------追記おわり 再生開始した時など、エディターの状態が変わった事…

スクリプトからエディタを再生したり、停止したり、ポーズしたり、再開したり。【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに 以前、スクリプトからエディタの再生を停止する方法が分からず、代替案としてエディタを強制終了するという方法をご紹介しました。 ありがたいことに、その記事のコメントにてスク…

スクリプトからUnityエディタを終了させる【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.1f1 Personal EditorApplication.Exit スクリプトからUnityのエディタを終了させたい場合は、EditorApplication.Exitを使います。 using UnityEditor; //必要! using UnityEngine; public class NewBeha…

UISpriteのAtlasを自動で再設定する 【Unity】【NGUI】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.1f1 Personal NGUI 3.9.7 はじめに NGUIのアトラスを分割して新たなアトラスを作った場合など、設定していたアトラスがなくなった場合、UISpriteのAtlasはNoneになります。 しかし、新たにアトラスを設定…

Scripting Define Symbolsを劇的に使いやすくするエディタ拡張【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.2.2f1 Personal 目次 目次 はじめに Scripting Define Symbols 導入 使い方 シンボルの追加、削除 Symbolに対応する値 Symbolの無効と削除 Reset All Invalid All Valid All Delete 設定ファイルの保存場所…

プロジェクト内でデータを保存【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.1.0f3 Personal はじめに 以前、プロジェクトをまたいでデータを保存する記事を書きましたが、 今回はプロジェクト内でデータを保存する方法です。今回も、基本的にエディタ拡張で使う機能だと思われます。

XcodeAPIの使い方【Unity】【XcodeAPI】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.1.0f3 Personal はじめに 以前、XcodeAPIを使って諸々の設定をするXcodeProjectUpdaterというものを作ったのですが、 文量が多くなってしまったため、XcodeAPIを実際にどう使っているかという説明を省きま…

C#だけで簡単にXcodeプロジェクトの自動設定【Unity】【XcodeAPI】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.1.0f3 Personal はじめに UnityからXcodeのプロジェクトを書き出す後に、Frameworkの追加やURLスキームの設定など手動でやるのが面倒な事ってありますよね。 んで自動化しようという話になるんですけど、な…

Resources内にあるファイルとディレクトリへのパスを自動作成する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.1.0f3 Personal はじめに Resources.Loadを使ってPrefabからインスタンスを作る、みたいな事はよくあると思います。しかし、Prefabのパスを文字列で指定するのが難点で、どうにかしてパスを自動作成したい…

Preferenceに開発者情報の設定を追加する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.1.0f3 Personal はじめに Unity - PreferenceからUnityの色々な設定が出来ますが、エディタ拡張でここに独自のメニューを追加する事が出来るそうです。 今回はこのPreferenceから開発者名を登録するエディ…