コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【Unity】選択中の複数のプレハブのインスタンスの変更を取り消すエディタ拡張

はじめに プレハブのインスタンスを複数選択した状態だと Inspector に Revert ボタンが表示されず、一括で変更を取り消すことができません そこで、一括で変更を取り消すことができるエディタ拡張を作成しました ソースコード using UnityEditor; using Uni…

【Unity】【NGUI】アトラスに含まれているスプライト名と書式指定関数を管理するクラスを自動生成するエディタ拡張

はじめに var uiSprite = GetComponent<UISprite>(); uiSprite.spriteName = "cursor_right"; uiSprite.spriteName = "cursor_" + dirType.ToString(); Unity で NGUI を使用してゲームを開発していると 上記のように、プログラムからスプライトの名前を変更することが</uisprite>…

【Unity】Unity で用意されているすべてのエディタウィンドウのクラス情報を取得してみる

ソースコード using System; using System.Linq; using UnityEditor; public static class Utils { public static Type[] GetAllEditorWindowTypes() { var editorWindow = typeof( EditorWindow ); var result = AppDomain.CurrentDomain .GetAssemblies() …

【Unity】Game ビューのインスタンスを取得するエディタ拡張

ソースコード using UnityEditor; public static class Example { public static EditorWindow GetGameView() { var assembly = typeof( EditorWindow ).Assembly; var type = assembly.GetType( "UnityEditor.GameView" ); var gameview = EditorWindow.Get…

【Unity】【uGUI】SpriteAtlas がインポートされた時に Tight Packing をオフにするエディタ拡張

この記事における Unity のバージョン Unity 2017.1.1 f1 はじめに SpriteAtlas がインポートされたら自動で Tight Packing をオフにしようと思って いろいろ調べていたのですが、どうも現在の Unity のバージョンでは SpriteAtlas 用のインポータークラスが…

【Unity】列挙型とそれに関連する便利なクラスや拡張メソッドを自動生成するエディタ拡張

はじめに public enum JOB_TYPE { NONE , // 不明 SOLDIER , // 王国兵士 SORCERER , // 魔法使い HUNTER , // 狩人 SIZEOF , // 番兵 } 僕は普段のゲーム開発で列挙型を使用する時に 下記のようなクラスや拡張メソッドを使用して処理を記述することが多々あ…

【Unity】PlayerPrefs の閲覧や編集、インポートやエクスポートが可能なアセット「Advanced PlayerPrefs Window」紹介

概要 2013/3/11 に、エディタ拡張用のアセット 「Advanced PlayerPrefs Window」がリリースされました 「Advanced PlayerPrefs Window」を導入すると、 PlayerPrefs のデータの閲覧や編集、 インポートやエクスポートができるようになります 検証環境 Unity …

【Unity】Unity エディタ上でメモを管理できる「UnityEditorMemo」紹介

概要 2017/2/21 に、エディタ拡張用のアセット 「UnityEditorMemo」がリリースされました 「UnityEditorMemo」を導入すると、 Unity エディタ上でメモを管理できるようになります 検証環境 Unity 5.6.2f1 UnityEditorMemo 1.1 Unity Memo ウィンドウ Unity …

【Unity】Unity エディタで Slack の通知を確認したり、Slack にスクリーンショットを送信できる「Slack For Unity」紹介

概要 2016/10/19 に、エディタ拡張用のアセット 「Slack For Unity」がリリースされました 「Slack For Unity」を導入すると、 Unity エディタ上で Slack の通知を確認できるようになったり、 Slack にリマインダーを登録できるようになったり、 Slack にス…

【Unity】無限ループで Unity がフリーズしても操作を回復できる「Panic Button」紹介

概要 2015/7/21 に、エディタ拡張用のアセット 「Panic Button」がリリースされました 「Panic Button」を導入すると、 無限ループで Unity エディタがフリーズしても操作を回復できるようになります 検証環境 Unity 5.6.2f1 Panic Button 1.2.3 使い方 usin…

【Unity】コンポーネントの順番をドラッグ&ドロップで変更できる「Reorder My Components」紹介

概要 2014/6/2 に、エディタ拡張用のアセット 「Reorder My Components」がリリースされました 「Reorder My Components」を導入すると、 オブジェクトにアタッチされたコンポーネントの順番を ドラッグ&ドロップで変更できるようになります 検証環境 Unity …

【Unity】プレハブのネストが簡単な手順で実現できる「Nested Prefabs」紹介

概要 2017/3/31 に、プレハブのネスト用のアセット「Nested Prefabs」がリリースされました 「Nested Prefabs」を導入すると、簡単な手順でプレハブのネストができるようになります 検証環境 Unity 5.6.2f1 Nested Prefabs 1.2.3 公式ドキュメント(英語) …

【Unity】Hierarchy を拡張する多機能アセット「QHierarchy」紹介

概要 2015/2/2 に、エディタ拡張用のアセット 「QHierarchy」がリリースされました 「QHierarchy」を導入すると、 Hierarchy ビューの見た目や操作性を拡張することができます 検証環境 Unity 5.6.2f1 QHierarchy 4.1 概要 「QHierarchy」はパッケージをプロ…

【Unity】パラメータやデバッグログを時系列グラフで閲覧できる「Monitor Components」

概要 2014/10/27 に、エディタ拡張用のアセット「Monitor Components」がリリースされました 「Monitor Components」を導入すると、下記の項目のパラメータが 時系列グラフで閲覧できるようになります MonoBehaviour Transform Rigidbody Rigidbody2D AudioS…

【Unity】選択したオブジェクトの履歴を保持できる「Inspector Navigator」紹介

概要 2014/12/11 に、エディタ拡張用のアセット 「Inspector Navigator」がリリースされました 「Inspector Navigator」を導入すると、 選択したオブジェクトの履歴を保持できるようになります 検証環境 Unity 5.6.2f1 Inspector Navigator 1.23 使用準備 Un…

【Unity】Inspector における Transform の操作性を向上する「TransformPro」紹介

はじめに この記事は「Unity アセット真夏のアドベントカレンダー 2017」の8/26の記事です 昨日は やのせん さんの「Camera Projecterで球面ディスプレイに360度画像を表示する。」でした 明日は Yuuki Hirai さんの「拡張エディタのThird Person Controller…

【Unity】オブジェクトやアセットの検索やメニューの実行が可能なランチャー「Haste Pro」紹介

概要 2014/6/19 に、エディタ拡張用のアセット「Haste Pro」がリリースされました 「Haste Pro」を導入すると下記の操作が可能なランチャーを使用できるようになります ゲームオブジェクトの検索 プロジェクト内のアセットやフォルダの検索 Unity のメニュー…

【Unity】設定豊富な多機能コンソールウィンドウ「Console Enhanced Pro」紹介

概要 2013/12/2 に、エディタ拡張用のアセット 「Console Enhanced Pro」がリリースされました 「Console Enhanced Pro」を導入すると、 Unity 標準よりも設定が豊富なコンソールウィンドウが使用できるようになります 検証環境 Unity 5.6.2f1 Console Enhan…

【Unity】コンパイル時間短縮アセット「Mad Compile Time Optimizer」紹介

概要 2015/4/15 に、コンパイル時間短縮用のアセット 「Mad Compile Time Optimizer」がリリースされました 「Mad Compile Time Optimizer」を使用すると、 Unity プロジェクトのコンパイル時間を短縮できるようになります 検証環境 Unity 5.6.2f1 Mad Compi…

【Unity】お気に入り機能追加用アセット「Favorites Tab[s]」紹介

概要 2012/8/27 に、エディタ拡張用のアセット 「Favorites Tab[s]」がリリースされました 「Favorites Tab[s]」を導入すると、 Unity で作業する上でよく操作するオブジェクトやリソースを お気に入りに追加できるようになります 検証環境 Unity 5.6.2f1 Fa…

【Unity】Hierarchy を拡張するアセット「PRO Hierarchy + Memory Monitoring + Navigator for Selecting」紹介

はじめに この記事は「Unity アセット真夏のアドベントカレンダー 2017」の8/18の記事です 昨日は ゆう さんの「開発効率を上げ、手軽に拡張できるFSM「Arbor2」紹介」でした 明日は 青木とと さんの「TextMeshProで生成したテキストをDOTween(Pro)を使って…

【Unity】Project ビューのフォルダを彩る「Rainbow Folders」紹介

はじめに この記事は「Unity アセット真夏のアドベントカレンダー 2017」の8/14の記事です 昨日は Limes さんの「Set Pass Callを劇的に減らす「Mesh Baker」の使い方と、いくつかのモデルをHoloLensで表示した動作結果」でした 明日は kitposition さんの「…

【Unity】Inspector をカスタマイズするエディタ拡張用アセット「Odin - Inspector and Serializer」を64件の記事に分けて紹介

はじめに この記事は「Unity アセット真夏のアドベントカレンダー 2017」の8/5の記事です 昨日は ぽうひろ さんの「DoozyUIでUnityUIを時短de簡単に作っちゃおう!!」でした 明日は ゆーじ さんの「DaydreamのコントローラーをHoloLensで使う」です 概要 20…

【Unity】Inspectorに表示されるパラメータをUnityエディタ再生中のみ編集不可能にするPropertyAttribute

using UnityEngine; public class Example : MonoBehaviour { [UnchangeableInPlaying] public int m_id; [UnchangeableInPlaying] public string m_name; }

【Unity】Inspectorに表示されるパラメータを編集不可能にするPropertyAttribute

using UnityEngine; public class Example : MonoBehaviour { [Unchangeable] public int m_id; [Unchangeable] public string m_name; }

【Unity】【NGUI】BoxColliderの位置とサイズをUIWidgetのパラメータに合わせて調整するボタンをInspectorに追加するエディタ拡張

using System.Linq; using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( BoxCollider ), true )] public sealed class BoxColliderInspector : Editor { public override void OnInspectorGUI() { DrawDefaultInspecto…

【Unity】【NGUI】BoxColliderの位置とサイズをUIWidgetのパラメータに合わせて調整するコンテキストメニューを追加するエディタ拡張

using UnityEditor; using UnityEngine; public static class BoxColliderContextMenu { [MenuItem( "CONTEXT/BoxCollider/Adjust To Match" )] private static void AdjustToMatch( MenuCommand command ) { var boxCollider = command.context as BoxColli…

【Unity】【NGUI】UICenterOnChildのInspectorに整列用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UICenterOnChild ), true )] public sealed class UICenterOnChildEditor : Editor { public override void OnInspectorGUI() { DrawDefaultInspector(); if ( GUIL…

【Unity】【NGUI】UIWrapContentのInspectorにソート用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UIWrapContent ), true )] public sealed class UIWrapContentEditorCustom : UIWrapContentEditor { public override void OnInspectorGUI() { base.OnInspectorGU…

【Unity】【NGUI】UIScrollViewのInspectorにリセット用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UIScrollView ), true )] public sealed class UIScrollViewEditorCustom : UIScrollViewEditor { public override void OnInspectorGUI() { base.OnInspectorGUI()…