Unity・3DCG技術ブログ

TAもどきによるUnity・3DCGに関する記事をアップします。

エディタ拡張

【Unity】EditorWindowにWarningを表示するサンプル

概要 コード using UnityEditor; using UnityEngine; using UnityEngine.UIElements; public class ExampleWindow : EditorWindow { [MenuItem("Window/ExampleWindow")] static void Init() { GetWindow<ExampleWindow>(); } void OnEnable() { var button1 = new Button((</examplewindow>…

【Unity】GetWindowで特定のEditorWindowの隣にEditorWindowをこさせるサンプル

概要 EditorWindow.GetWindowの引数desiredDockNextToにtypeofでタイプを指定すると、そのタイプの隣に ウィンドウがくるサンプル。 コード using UnityEditor; using UnityEngine; using UnityEngine.UIElements; public class ExampleWindow : EditorWindo…

Unityでファイルの特定の行数にジャンプする

概要 Unityでコンソールウィンドウの行をダブルクリックしたときにコードにジャンプしますが それと同じことをUnityのインターナルなメソッドを呼ぶことでできるのでメモ コード static void OpenFileOnSpecificLineAndColumn(string filePath, int line, in…

【Unity】TypeCache.GetTypesDerivedFrom

概要 Unity2019.2からTypeCacheを使用すると、あるベースクラスから継承されている派生先のクラスのTypeを取得することができる。 サンプルコード public interface IHoge { } public class HogeA : IHoge { } public class HogeB : IHoge { } foreach (var …

【Unity】シンプル会話パートを作れるUniNovelを作ってみた

概要 Unityでシンプルな会話パートが作成できるUniNovelを作ってBitbucketに公開しました。 機能 かなりシンプルなことしかできません^^ BG表示・非表示 キャラ表示・非表示 メッセージ送り バックログ GUIエディター 上でコマンドを選択して+ボタンで追加…

C#リフレクションでComponentのSerializeFieldをゲットする

// SerializeFieldをゲットする。componentはなんらかのComponentを指定する。 var fields = component.GetType() .GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.FlattenHierarchy) .SelectMany(x => x.CustomAttributes.Where…

SerializeField付きの新規スクリプトを作成できる「ScriptWizard」の紹介

コード https://bitbucket.org/macnaga/scriptwizard/src/master/Assets/Editor/ScriptWizard.cs 確認バージョン Unity2018.2.4f1 Windows 10 Window/Script Wizard .. Exposed ReferencesにSerializeFieldをAddボタンにて追加します。 フィールドにオブジェ…