コガネブログ

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

【Unity】エディタがフォーカスされた、フォーカスが外れた時に呼び出されるコールバック「UniEditorFocusWatcher」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; [InitializeOnLoad] public class Example { static Example() { EditorFocusWatcher.OnFocused += () => Debug.Log( "フォーカスされた" ); EditorFocusWatcher.OnUnfocused += () …

【Unity】Project Settings に簡単にメニューを追加できるエディタ拡張「UniScriptableObjectForProjectSettings」を GitHub に公開しました

リポジトリ 使い方 using Kogane; using UnityEditor; using UnityEngine; public class MySettings : ScriptableObjectForProjectSettings<MySettings> { [SerializeField] private int m_id = 25; [SerializeField] private string m_name = "ピカチュウ"; public int </mysettings>…

【Unity】Preferences に簡単にメニューを追加できるエディタ拡張「UniScriptableObjectForPreferences」を GitHub に公開しました

リポジトリ 使い方 using Kogane; using UnityEditor; using UnityEngine; public class MySettings : ScriptableObjectForPreferences<MySettings> { [SerializeField] private int m_id = 25; [SerializeField] private string m_name = "ピカチュウ"; public int Id =</mysettings>…

【Unity】コンポーネントがシーンに1つだけ存在することを保証する Attribute「UniOnlyOneInSceneAttribute」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; [OnlyOneInScene] public class Example : MonoBehaviour { } OnlyOneInScene 属性を適用したコンポーネントが シーンに複数存在する状態で Unity を再生しようとすると エラーログが出力されて Unity …

【Unity】Raycast Target が true なゲームオブジェクトの描画範囲を Scene ビューに表示するエディタ拡張「UniSceneViewRaycastTargetVisualizer」を GitHub に公開しました

リポジトリ 使用例 使い方 Unity の Preferences から Enabled を変更することで表示の ON / OFF を切り替えられます

【Unity】シーン保存時に RectTransform の AnchoredPosition3D や SizeDelta を整数に四捨五入するエディタ拡張「UniRectTransformAutoRounder」を GitHub に公開しました

リポジトリ 依存しているパッケージ https://github.com/baba-s/UniScriptableObjectForPreferences.git 使い方 RectTransform の AnchoredPosition3D や SizeDelta を整数に四捨五入したいゲームオブジェクトに 「RectTransformAutoRounderTarget」をアタッ…

【Unity】Hierarchy にシーンファイルを Ping するボタンを追加するエディタ拡張「UniSceneAssetSelector」を GitHub に公開しました

リポジトリ 使用例

【Unity】乱数に関する汎用的な関数を管理するクラス「UniRandomUtils」を GitHub に公開しました

リポジトリ 使用例 using UniRandomUtils; using UnityEngine; public sealed class Example : MonoBehaviour { private void Start() { // 半径 1 の円の内部のランダムな点 Debug.Log( RandomUtils.InsideUnitCircle ); // 半径 1 の球体の内部のランダム…

【Unity】Inspector で AnimationCurve をコピー・ペーストできるようにするエディタ拡張「UniAnimationCurveCopyPasteDrawer」を GitHub に公開しました

リポジトリ 使用例 using UnityEngine; public class Test : MonoBehaviour { public AnimationCurve m_animationCurve1; public AnimationCurve m_animationCurve2; }

【Unity】Inspector で参照が設定されていない NotNull なパラメータが存在したら Unity を再生できなくするエディタ拡張「UniNotNullChecker」を GitHub に公開しました

リポジトリ 使用例 using JetBrains.Annotations; using UnityEngine; public class Test : MonoBehaviour { [NotNull] public GameObject m_gameObject; [NotNull] public Transform m_transform; } 設定 Preferences から設定を変更できます 項目 内容 Ena…

【Unity】Missing Script が存在したら Unity を再生できなくするエディタ拡張「UniMissingScriptChecker」を GitHub に公開しました

リポジトリ 使用例 設定 Preferences から設定を変更できます 項目 内容 Enabled 有効かどうか(デフォルトは OFF) Log Format エラーログのフォーマット

【Unity】Android でもソフトウェアキーボードの表示領域を取得できるパッケージ「UniSoftwareKeyboardArea」を GitHub に公開しました

リポジトリ 使用例 using UniSoftwareKeyboardArea; using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { public CanvasScaler m_canvasScaler; public RectTransform m_rectTransform; private void Update() { var rate = m_ca…

【Unity】スプライトの Border をコンテキストメニューから設定できるエディタ拡張「UniSpriteBorderSetupper」を GitHub に公開しました

リポジトリ 使い方 Border を設定したいスプライトを右クリックして「UniSpriteBorderSetupper > 選択中のスプライトの Border を自動で設定」を選択すると 指定したスプライトの Border が自動で設定されます 複数のスプライトを選択してコマンドを実行する…

【Unity】Transform プロパティをキャッシュする MonoBehaviour「UniCacheableMonoBehaviour」を GitHub に公開しました

リポジトリ 使用例 using UnityEngine; public class Example : CacheableMonoBehaviour { private void Start() { var vec = Vector3.zero; var x = 0f; var y = 0f; var z = 0f; // transform.position を操作 vec = position; x = position.x; y = positi…

【Unity】タグ付きのデバッグログなどを使用できるパッケージ「UniDebugLogger」を GitHub に公開しました

リポジトリ 使用例 using UniDebugLogger; using UnityEngine; public class Example : MonoBehaviour { private void Awake() { IDebugLogger logger; logger = DefaultDebugLogger.Instance; logger.Log( "Log" ); logger.Log( "Log", gameObject ); logge…

【Unity】EditorPrefs が保存しているすべてのキーと値を閲覧できるエディタ拡張「UniEditorPrefsWindow」を GitHub に公開しました

リポジトリ 使い方 Unity メニューの「Window > UniEditorPrefsWindow」を押すと EditorPrefs が保存しているすべてのキーと値を閲覧できます

【Unity】Unity 再生時の開始シーンを設定できるエディタ拡張「UniPlayModeStartSceneSettingWindow」を GitHub に公開しました

リポジトリ ] 使い方 Unity メニューの「Window > UniPlayModeStartSceneSettingWindow」を選択して 表示されたウィンドウの「Start Scene」にシーンファイルを設定すると Unity 再生時に必ずそのシーンから開始するようになります 「Set Current Scene」ボ…

【Unity】SceneHierarchy クラスの internal な機能にアクセスできる機能「UniSceneHierarchyInternal」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // Hierarchy で選択中のゲームオブジェクトのリネームモードに入る SceneHierarchyInternal.RenameGO(); } }

【Unity】シーンやプレハブから Missing Script を削除するエディタ拡張「UniMissingScriptRemover」を GitHub に公開しました

リポジトリ 使い方 Unity メニューの「Edit > UniMissingScriptRemover」から どのシーンやプレハブから Missing Script を削除するか選択することで使用できます

【Unity】Console ウィンドウの internal な機能を呼び出せるようにするクラス「UniConsoleWindowInternal」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // Console ウィンドウでログを検索 ConsoleWindowInternal.SetFilter( "ピカチュウ" ); } }

【Unity】Project ビューの internal な機能を呼び出せるようにするクラス「UniProjectBrowserInternal」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // Project ビューでアセットを検索 ProjectBrowserInternal.SetSearch( "ピカチュウ" ); } }

【Unity】フォルダの Inspector にボタンを追加するエディタ拡張「UniFolderInspector」を GitHub に公開しました

リポジトリ 使用例 選択中のフォルダにフォルダや C# スクリプトを作成できるボタンが使用できるようになります

【Unity】Inspector でゲームオブジェクトの編集を不可能にできるエディタ拡張「UniGameObjectLocker」を GitHub に公開しました

リポジトリ 使い方 Inspector で Transform コンポーネントを右クリックして「Switch Lock - Unlock」を押すと そのゲームオブジェクトを編集不可にできます 編集可能に戻したい場合はもう一度同じメニューを選択します

【Unity】アセットのパスに関する処理を記述しやすくする構造体「UniAssetPath」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Test { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var assetPath = new AssetPath( "Assets/New Material.mat" ); // 下記の記述も可能 //Asse…

【Unity】Assembly Definition を作成する時のコンパイル回数を抑えられるエディタ拡張「UniAssemblyDefinitionCreator」を GitHub に公開しました

リポジトリ 使い方 Project ビューのコンテキストメニューから「Open Assembly Definition Creator」を選択して 表示されたウィンドウで Assembly Definition を作成することができます 通常の手順で Assembly Definition を作成して設定を変更する場合 Asse…

【Unity】開始と終了がある処理を using ステートメントで使用できる「UniScope」を GitHub に公開しました

リポジトリ 使用例 AssetEditingScope // 通常 AssetDatabase.StartAssetEditing(); //... AssetDatabase.StopAssetEditing(); // UniScope using ( new AssetEditingScope() ) { //... } HandlesColorScope // 通常 var oldColor = Handles.color; Handles.…

【Unity】無効値を表す構造体「UniOptional」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { private static Optional<string> GetName() { return default; } private void Start() { var name = GetName(); // 値を持っている場合 if ( name ) { Debug.L</string>…

【Unity】アセットをブックマークできるエディタ拡張「UniBookmark」を GitHub に公開しました

リポジトリ 使い方 Unity メニューの「Window > UniBookmark」を押すと ブックマークを管理できる「UniBookmark」ウィンドウが表示されます 「Add Asset」ボタンを押すか、「Add Asset」ボタンにアセットをドラッグすると ブックマークにアセットを登録でき…

【Unity】ボタンが押されて縮小した時に、当たり判定のサイズも一緒に縮小する現象を避けるためのコンポーネント「UniUIColliderSizeAdjuster」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; using UnityEngine.EventSystems; public class Example : MonoBehaviour, IPointerDownHandler, IPointerUpHandler { private UIColliderSizeAdjuster m_adjuster; private void Awake() { m_adjuster …

【Unity】ファイルを開くアプリケーションを設定できるエディタ拡張「UniOpenAssetCustomizer」を GitHub に公開しました

リポジトリ 使い方 Unity の Preferences の左メニューから「UniOpenAssetCustomizer」を開くことで、 ファイルを開くアプリケーションを拡張子ごとに設定できます 項目 内容 Extension 対象の拡張子(「.」は不要) Application Path ファイルを開くアプリ…