Unityで効率的な開発をするために
エディター拡張入門
更新履歴

本書について

エディター拡張を知りたい人向け

本書は、エディター拡張に触れたことのない人・もう少し詳しく技術を知りたい人向けに執筆されています。

目的

Unityのゲーム開発において、少しでも開発が楽になる技術を身につけてもらうことを目的としています。

サンプルコード

サンプルコードを多数掲載しています。ライセンスは MIT ライセンスです。

購入

注意: 本書は2017.1当時の内容です。現在の情報と異なる場合があります。ご注意ください。

電子書籍版の PDF をBOOTHで販売しています。

PDF版の入ページへ移動する

内容

ページ数
456ページ
目次
  1. 第1章 エディター拡張で使用するフォルダー
    1. 1.1 Editorフォルダー
    2. 1.2 Editor Default Resourcesフォルダー
  2. 第2章 標準で使えるエディター拡張機能
    1. 2.1 インスペクターの見た目を変える
    2. 2.2 インスペクターで扱う機能を追加する
    3. 2.3 インスペクターの見た目を整える
    4. 2.4 インスペクターを少し便利にする
    5. 2.5 ゲームの開発を楽にする
  3. 第3章 データの保存
    1. 3.1 EditorPrefs
    2. 3.2 EditorUserSettings.Set/GetConfigValue
    3. 3.3 ScriptableObject
  4. 第4章 ScriptableObject
    1. 4.1 ScriptableObject とは
    2. 4.2 ScriptableObject は Unity エディターの要
    3. 4.3 ScriptableObject を作成する
    4. 4.4 ScriptableObject の親子関係
    5. 4.5 アイコンの変更
  5. 第5章 SerializedObjectについて
    1. 5.1 SerializedObjectとは
    2. 5.2 SerializedObjectの使い方
    3. 5.3 複数の UnityEngine.Object を1つの SerializedObject で扱う
    4. 5.4 プロパティ名を知るには
  6. 第6章 EditorGUI (EdirotGUILayout)
    1. 6.1 EditorGUIとは
    2. 6.2 ChangeCheck
    3. 6.3 DisabledGroup
    4. 6.4 FadeGroup
    5. 6.5 EditorGUI.ObjectField
    6. 6.6 EditorGUI.MultiFloatField
    7. 6.7 EditorGUI.indentLevel
    8. 6.8 EditorGUILayout.Knob
    9. 6.9 ○○Scope
    10. 6.10 見た目はボタン、中身はトグル
  7. 第7章 EditorWindow
    1. 7.1 EditorWindowとは
    2. 7.2 HostView と SplitView と DockArea
    3. 7.3 EditorWindowの作成
    4. 7.4 EditorWindow.GetWindow
    5. 7.5 どのShow関数を呼ぶかで変わる特殊なEditorWindow
    6. 7.6 メニューを追加するIHasCustomMenu
    7. 7.7 EditorWindowのサイズを変更できないようにする
    8. 7.8 ウインドウにアイコンを追加する
    9. 7.9 GetWindowを使わずに既にあるEditorWindowを取得するには?
    10. 7.10 EditorWindowもScriptableObjectであることを知る
  8. 第8章 MenuItem
    1. 8.1 MenuItemとは
    2. 8.2 MenuItemの使いドコロ
    3. 8.3 MenuItemを使ってメニューを表示する
    4. 8.4 実行できないMenuItemを作成する
    5. 8.5 MenuItemの表示順を変更する
    6. 8.6 MenuItemにチェックを入れる
    7. 8.7 ホットキー(ショートカットキー)を実装する
    8. 8.8 CONTEXT
  9. 第9章 CustomEditor
    1. 9.1 インスペクターの Debug モード
    2. 9.2 オブジェクトと Editor クラス
    3. 9.3 カスタムエディターを使う
    4. 9.4 カスタムエディターでデータのやり取り
    5. 9.5 複数コンポーネントの同時編集
    6. 9.6 カスタムエディター内で PropertyDrawer を使用する
    7. 9.7 プレビュー
    8. 9.8 プレビューでカメラを使う
  10. 第10章 PropertyDrawer
    1. 10.1 PropertyDrawer とは
    2. 10.2 PropertyAttribute
    3. 10.3 CustomPropertyDrawer と PropertyDrawer
    4. 10.4 RangeAttribute を試す
    5. 10.5 RangeAttribute を自作する
    6. 10.6 Range2Attribute を使用する
    7. 10.7 様々な PropertyDrawer
  11. 第11章 ProjectWindowUtil
    1. 11.1 アセットの生成
    2. 11.2 アセット名決定後に行う EndNameEditAction を使いこなす
  12. 第12章 Undoについて
    1. 12.1 Undoの操作を実感してみる
    2. 12.2 Undoの仕組み
    3. 12.3 Undoを実装してみる
    4. 12.4 どのプロパティが変更されたかを知るPropertyDiffUndoRecorder
    5. 12.5 Redoの仕組み
    6. 12.6 Undoの対象
    7. 12.7 Undoの種類
    8. 12.8 キャンセル処理(Revert)
    9. 12.9 グループを理解する
  13. 第13章 様々なイベントのコールバック
    1. 13.1 PostProcessBuildAttribute
    2. 13.2 PostProcessSceneAttribute
    3. 13.3 InitializeOnLoad
    4. 13.4 InitializeOnLoadMethod
    5. 13.5 DidReloadScripts
    6. 13.6 EditorUserBuildSettings.activeBuildTargetChanged
    7. 13.7 EditorApplication.hierarchyWindowChanged と projectWindowChanged
    8. 13.8 EditorApplication.hierarchyWindowItemOnGUI と projectWindowItemOnGUI
    9. 13.9 EditorApplication.playmodeStateChanged
    10. 13.10 EditorApplication.modifierKeysChanged
    11. 13.11 EditorApplication.update
    12. 13.12 EditorApplication.delayCall
    13. 13.13 EditorApplication.globalEventHandler
  14. 第14章 ReorderbleList
    1. 14.1 ReorderbleList の使い方
    2. 14.2 カスタマイズ
    3. 14.3 ヘッダーの描画
    4. 14.4 フッターの描画はカスタマイズしない
    5. 14.5 各要素の背景
    6. 14.6 要素の追加
    7. 14.7 「+」ボタンにドロップダウンメニューの追加
    8. 14.8 要素を並び替えた直後のコールバック
    9. 14.9 まだまだ他にも
    10. 14.10 要素の GUI をカスタマイズ
  15. 第15章 ScriptTemplates
    1. 15.1 ScriptTemplatesとは
    2. 15.2 テンプレートファイルの作成
    3. 15.3 テンプレートファイルの配置
    4. 15.4 メニューの表示位置
    5. 15.5 ProjectWindowUtil との組み合わせ
  16. 第16章 Gizmo(ギズモ)
    1. 16.1 ゲームオブジェクトにギズモを追加
    2. 16.2 ギズモの描画
  17. 第17章 Handle(ハンドル)
    1. 17.1 ゲームオブジェクトにハンドルを追加
    2. 17.2 PositionHandle を自作する
    3. 17.3 特殊なハンドル
    4. 17.4 GUI の描画(2D)
  18. 第18章 HierarchySort
    1. 18.1 HierarchySortを自作する
    2. 18.2 TagSort を作成する
    3. 18.3 現在何でソートされているかを知る
  19. 第19章 GUIを自作する
    1. 19.1 GUIを作る
    2. 19.2 GUIStyle
    3. 19.3 Event
    4. 19.4 Control ID
    5. 19.5 ObjectPicker
    6. 19.6 DragAndDrop
    7. 19.7 HandleUtility.Repaint
    8. 19.8 GUIUtility.ExitGUI
    9. 19.9 GUILayout対応
    10. 19.10 最後に
  20. 第20章 Overwriter
    1. 20.1 Overwriterの使い方
    2. 20.2 Overwriter の作り方
    3. 20.3 ファイルのインポート監視
    4. 20.4 ドラッグした時のみ処理を実行する
    5. 20.5 ダイアログの表示
    6. 20.6 上書き
  21. 第21章 パーティクルを制御する
    1. 21.1 パーティクルシステムの制御
    2. 21.2 複数同時編集を行うには
    3. 21.3 ParticleSystem を SerializedObject にする
    4. 21.4 ParticleSystem のプロパティ名を知る
    5. 21.5 タイムライン
    6. 21.6 タイムラインを作成してみた
    7. 21.7 シーン内の ParticleSystem を全て取得
    8. 21.8 ParticleSystem.Simulate でパーティクルの再生
    9. 21.9 親の ParticleSystem かどうかを判断する
    10. 21.10 要の TimeControl
    11. 21.11 再生リスト
  22. 第22章 SpriteAnimationPreview(スプライト一覧の表示)
    1. 22.1 概要
    2. 22.2 CustomPreviewの作成
    3. 22.3 AnimationClipが参照しているスプライトを取得する
    4. 22.4 スプライトの表示(その1)
    5. 22.5 スプライトの表示(その2)
  23. 第23章 SpriteAnimationPreview(スプライトアニメーション)
    1. 23.1 カスタムエディター
    2. 23.2 さらに機能を追加していく
  24. 第24章 シーンアセットにスクリプトをアタッチ
    1. 24.1 GlobalManager のようなゲームオブジェクト
    2. 24.2 シーンアセットのカスタムエディター
    3. 24.3 シーンアセットにアタッチしたコンポーネントをどこに保持するか
    4. 24.4 プレハブのコンポーネントをシーンアセットのインスペクターに表示
    5. 24.5 コンポーネントをインスペクターにドラッグ & ドロップ
    6. 24.6 シーン再生時&ビルド時に自動的にプレハブをインスタンス化
  25. 第25章 時間を制御する TimeControl
    1. 25.1 時間の素 EditorApplication.timeSinceStartup
    2. 25.2 再生
    3. 25.3 一時停止
    4. 25.4 停止
    5. 25.5 時間の下限/上限
    6. 25.6 再生スピード
    7. 25.7 動くか確認
  26. 第26章 AssetDatabase
    1. 26.1 オブジェクトをアセットとして保存
    2. 26.2 アセットが更新されるタイミング
    3. 26.3 System.IO を使う
  27. 第27章 HideFlags
    1. 27.1 ゲームオブジェクトを非表示にする
    2. 27.2 HideFlags.HideInHierarchy の挙動
    3. 27.3 HideFlags.DontSave の挙動
  28. 第28章 AssetPostprocessor
    1. 28.1 Preprocess と Postprocess
    2. 28.2 AssetImporter
    3. 28.3 Version
    4. 28.4 テクスチャの命名規則からスプライトを作成する
  29. DLL をデコンパイル
    1. 本章で使用するソフト
    2. DotPeek で DLL を見る
    3. DLL を .cs ファイルとしてエクスポート
    4. デコンパイルを利用したエディター拡張
    5. エディター拡張でデコンパイル・リフレクションを使うこと
  30. 過去の資料集
    1. 公式カンファレンスイベント「Unite」
    2. Editor拡張〜これが出来ないと帰れま10〜
    3. ブログなど
  31. ライセンス表記ページ
  32. 著者紹介
  33. 奥付

正誤表

ここに記載されているものは既に修正しています。購入ページより再度ダウンロードしてください。

ページ番号は、更新ごとに変化するおそれがあるので明記していません。
また、記載されていない誤字脱字などありましたらお問い合せから連絡していただけると助かります。

差分
第2章
標準で使えるエディター拡張機能
色の変さらにはカラーピッカーを使用します 色の変更にはカラーピッカーを使用します 色の変 さら にはカラーピッカーを使用します
第2章
標準で使えるエディター拡張機能
それを解決策の1つとして その解決策の1つとして れを 解決策の1つとして
第2章
標準で使えるエディター拡張機能
シーアセットをダブルクリックして シーンアセットをダブルクリックして シー アセットをダブルクリックして
第2章
標準で使えるエディター拡張機能
からピッカー カラーピッカー カラー から ピッカー
第2章
標準で使えるエディター拡張機能
コンポーネント郡 コンポーネント群 コンポーネント
第2章
標準で使えるエディター拡張機能
最新バージョンに合わせ、RenamedSerializedData から FormerlySerializedAs に変更。それに合わせusing UnityEngine.Serialization;を追加
第4章
ScriptableObject
Gozmosにアイコンを置く Gizmosにアイコンを置く G i o zmos
第9章
CustomEditor
オブジェクトすべてがアセッに書き込まれます オブジェクトすべてがアセットに書き込まれます オブジェクトすべてがアセッ に書き込まれます
第9章
CustomEditor
Undo について木にする必要はありません Undo について気にする必要はありません Undo について にする必要はありません
第9章
CustomEditor
アセットのの値 アセットの値 アセットの
第12章
Undoについて
プロパティーの変さらに対するUndo プロパティーの変更に対するUndo プロパティーの変 さら に対するUndo
第21章
パーティクルを制御する
知らなけでばいけません 知らなければいけません 知らなけ ばいけません
第21章
パーティクルを制御する
ハードコート ハードコード ハードコー
第21章
パーティクルを制御する
Uity Unity U n ity
第24章
シーンアセットにスクリプトをアタッチ
Unity5.3 より追加された EditorGUI.InspectorTitlebar の第4引数の記載忘れを修正

カスタマーレビュー

お問い合せ

メールアドレス: anchan828+c88@gmail.com
Twitter: @kyusyukeigo (DM可)