コガネブログ

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

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

リポジトリ 使用例 通常 using System.IO; using UnityEditor; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var path = "Assets/Scripts/Example.Generated.cs"; var dir = Path.GetDirectoryName( path ); Directory.…

【Unity】Unity Test Runner の開始終了時に呼び出されるコールバックを設定できるようにするクラス「UniTestRunnerApiCallbacks」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEditor.TestTools.TestRunner.Api; using UnityEngine; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // Test Runner の開始終了時に呼び出されるコー…

【Unity】TestRunnerApi の情報を JSON に変換できるようにするパッケージ「UniJsonTestRunnerApi」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEditor.TestTools.TestRunner.Api; using UnityEngine; public class Callbacks : ICallbacks { public void TestStarted( ITestAdaptor test ) { // JSON 形式で ITestAdaptor の情報をログ…

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

リポジトリ 使用例 通常 using System.Linq; using UnityEditor; using UnityEngine; public class Example : ScriptableObject { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // Unity プロジェクトに存在する Example アセットを取得する { …

【Unity】エディタのレイアウトファイル(.wlt)の Inspector に読み込みボタンを追加するエディタ拡張「UniLayoutAssetInspector」を GitHub に公開しました

リポジトリ 使用例

【Unity】EditorPrefs に関するコードを記述しやすくするクラス「UniEditorPrefsValue」を GitHub に公開しました

リポジトリ 使用例 通常 using UnityEditor; using UnityEngine; public class Example { private const string KEY = "Hoge"; [MenuItem( "Tools/Load" )] private static void Load() { Debug.Log( EditorPrefs.GetString( KEY ) ); } [MenuItem( "Tools/S…

【Unity】特殊なフォルダを作成するメニューを追加するエディタ拡張「UniSpecialFolderCreator」を GitHub に公開しました

リポジトリ 使用例

【Unity】Project ビューでアセットのフルパスをコピーできるようにするエディタ拡張「UniAssetFullPathMultipleCopyer」を GitHub に公開しました

リポジトリ 使用例 Project ビューでアセットのフルパスをコピーできるようにするエディタ拡張 複数のアセットを選択している場合は、選択中のすべてのアセットのフルパスをコピーします

【Unity】BuildPlayerWindow の internal な機能を使用できるようにするパッケージ「UniBuildPlayerWindowInternal」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // WebGL のモジュールをインストールする Unity Hub のページを開く var url = BuildPlayerWindowInternal.GetUnity…

【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】iOS / Android でローカル通知を実装できる「UniLocalNotification」紹介

はじめに 「UniLocalNotification」を Uniy プロジェクトに導入することで iOS / Android でローカル通知を実装できるようになります 検証環境 Unity 2019.3.10f1 iOS 13.3.1 Android 8.0.0 使用例 iOS Android 使い方 UniLocalNotification.Initialize(); …

【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】Unity で Immutable Collections を使用できるようにする「Unity3D Immutable Collections」紹介

はじめに 「Unity3D Immutable Collections」を Unity プロジェクトに導入することで Unity で Immutable Collections を使用できるようになります 使用例 using Izzo.Collections.Immutable; using UnityEngine; public sealed class Example : MonoBehavio…

【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 を削除するか選択することで使用できます