ソースコード using System.IO; using UnityEditor; using UnityEditor.PackageManager; using UnityEditorInternal; using UnityEngine; namespace Kogane.Internal { [InitializeOnLoad] internal static class PackageEmbedder { static PackageEmbedder(…
ソースコード using UnityEditor; using UnityEngine; namespace Kogane.Internal { [InitializeOnLoad] internal static class MuteAudioMenuItem { private const string MENU_ITEM_NAME = "Kogane/Mute Audio"; static MuteAudioMenuItem() { EditorAppli…
ソースコード using System.Linq; using System.Reflection; using UnityEditor; using UnityEngine; namespace Kogane.Internal { [InitializeOnLoad] internal static class InspectorHeaderGUI { static InspectorHeaderGUI() { Editor.finishedDefaultHe…
概要 using System.Linq; using UnityEditor; using UnityEngine; using UnityEngine.UIElements; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { var assembly = typeof( Editor ).Assembly; var windowTypeName =…
概要 CreateGUI is called when the EditorWindow's rootVisualElement is ready to be populated. CreateGUI 関数は EditorWindow の rootVisualElement が 操作できるようになるタイミングで呼び出される using UnityEditor; using UnityEngine.UIElements…
概要 var toolbar = new VisualElement { pickingMode = PickingMode.Ignore, }; pickingMode に PickingMode.Ignore を設定すると その VisualElement はクリックできないようになるため VisualElement の背面に存在する UI がクリックできるようになる
概要 using UnityEditor; using UnityEngine.UIElements; public sealed class Test : EditorWindow { [MenuItem( "Tools/Hoge" )] public static void Open() { GetWindow<Test>(); } public void CreateGUI() { var toolbar = new VisualElement(); toolbar.Add(</test>…
ソースコード using System.Linq; using UnityEditor; using UnityEngine; using UnityEngine.UIElements; [InitializeOnLoad] public static class Example { static Example() { EditorApplication.delayCall += () => { var assembly = typeof( EditorWin…
ソースコード using UnityEditor; using UnityEditor.ShortcutManagement; using UnityEngine; namespace Kogane.Internal { internal static class SearchShortcutKey { [Shortcut( "Kogane/Open Search New Window", KeyCode.T, ShortcutModifiers.Action …
ソースコード using System; using System.Collections.Generic; using System.IO; using System.Reflection; using UnityEditor; using UnityEditor.PackageManager.UI; using UnityEditorInternal; using UnityEngine.UIElements; using PackageInfo = Uni…
ソースコード using JetBrains.Annotations; using UnityEditor; using UnityEditor.DeviceSimulation; using UnityEngine.UIElements; namespace Kogane.Internal { [UsedImplicitly] internal sealed class DeviceSimulatorMuteAudioPlugin : DeviceSimula…
概要 using UnityEditor; using UnityEngine; public sealed class Example : EditorWindow { private bool m_isInitialized; private string m_name; [MenuItem( "Tools/Hoge" )] public static void Open() { GetWindow<Example>(); } private void OnGUI() { GUI.S</example>…
概要 var root = new VisualElement(); root.style.flexDirection = FlexDirection.Row; VisualElement の style.flexDirection に FlexDirection.Row を指定する これだけだと要素が左に表示されてしまう var root = new VisualElement(); root.style.flexD…
ソースコード using System.Linq; using UnityEditor; using UnityEngine; internal sealed class Example : AssetPostprocessor { private const string PATH = "ProjectSettings/EditorBuildSettings.asset"; private static void OnPostprocessAllAssets …
ソースコード using UnityEditor; using UnityEngine; using UnityEngine.UI; namespace Kogane.Internal { internal static class AspectRatioFitterMenuItem { [MenuItem( "CONTEXT/AspectRatioFitter/Set Default Aspect Ratio" )] private static void S…
ソースコード using System; using System.Linq; using System.Reflection; using UnityEditor; using UnityEditor.DeviceSimulation; using UnityEngine; namespace Kogane { [InitializeOnLoad] public static class DeviceSimulatorDeviceChecker { priva…
ソースコード using Packages.Rider.Editor; using UnityEditor; namespace Kogane.Internal { internal static class JetBrainsRiderRegenerateProjectFiles { [MenuItem( "Kogane/Rider/Regenerate project files" )] private static void SyncSolution() …
ソースコード using System.Reflection; using UnityEditor; using UnityEditor.DeviceSimulation; using UnityEngine; [InitializeOnLoad] public static class Example { static Example() { // 1 フレーム遅らせないと deviceSimulatorMain が null にな…
概要 上記のページで紹介されている .uss を Unity エディタに追加することで Unity エディタを白色にできます 検証環境 Unity 2020.3.33f1 導入手順 Unity プロジェクトに「Editor/Stylesheets/Extensions」フォルダを作成して その中に以下のファイルを作…
はじめに 「Tri Inspector」を Unity プロジェクトに導入することで Odin のような Attribute を使用できるようになります 使用例 https://github.com/codewriter-packages/Tri-Inspector 使用できる Attribute は上記のページに詳細に記載されています また…
はじめに 「Hierarchy Window Extensions」を Unity プロジェクトに導入することで Hierarchy でゲームオブジェクトのアイコンの代わりに コンポーネントのアイコンが表示できるようになります 導入前 導入後
はじめに 「Raycast Visualization」を Unity プロジェクトに導入することで Raycast などを Scene ウィンドウで可視化できるようになります 使用例 using Nomnom.RaycastVisualization; using UnityEngine; public class Example : MonoBehaviour { private…
はじめに 「Folder Importer Presets」を Unity プロジェクトに導入することで フォルダに適用する Preset を簡単に設定できるようになります 使用例 Project ウィンドウで「+ > Nomnom > Folder Importer」を選択して Folder Importer を作成したら Folder …
はじめに 「Drop-down with objects of any type in Unity Inspector」を Unity プロジェクトに導入することで const や static readonly を Inspector のドロップダウンで選択できるようになります 使用例 using StructDropDown; using UnityEngine; public…
はじめに 「MissingScriptType」を Unity プロジェクトに導入することで Missing になっているスクリプトの名前がわかるようになります 導入前 導入後 Missing になっているスクリプトの名前は「NewBehaviourScript」だとわかる 注意 パッケージ導入前に Mis…
はじめに 「Selection Detective」を Unity プロジェクトに導入することで レイヤーやタグ・マテリアル・シェーダ・フィールドなどで ゲームオブジェクトを検索できるようになります 使用例 Hierarchy で右クリックして「Selection Detective」を押して Sele…
はじめに 「Project Window Extensions」を Unity プロジェクトに導入することで Project ウィンドウでカット & ペーストが可能になります 使用例 その他 他にもテキストファイルや JSON ファイルを作成できるようになります
はじめに 「Vertx.Editors」を Unity プロジェクトに導入することで 指定したコンポーネントがアタッチされているプレハブを検索できるようになります 使用例 スクリプトの Inspector で「Search for XXXX」を押すと そのコンポーネントがアタッチされている…
はじめに 「NSelection」を Unity プロジェクトに導入することで Scene ウィンドウで重なっているゲームオブジェクトを簡単に選択できるようになります 使用例 Scene ウィンドウで Ctrl + 右クリックすると 重なっているゲームオブジェクトを簡単に選択でき…
はじめに 「Editor-View-Modules」を Unity プロジェクトに導入することで エディタのツールバーやステータスバーを非表示にできるようになります 使用例