コガネブログ

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

【Unity】Assembly Definition を作成する時のコンパイル回数を抑えられるエディタ拡張

リポジトリ 使い方 Project ウィンドウを右クリックして「Kogane > Create Assembly Definition」を選択して 表示されたウィンドウで Assembly Definition を作成することができます 通常の手順で Assembly Definition を作成して設定を変更する場合 Assembl…

【Unity】GUID とアセットの一覧を確認できる EditorWindow

リポジトリ 使用例 Unity メニューの「Window > Kogane > GUID List」を選択すると プロジェクトに含まれているすべてのアセットの GUID を確認できます 検索欄に GUID やアセットのパスを入力して検索することも可能です ダブルクリックすると該当のアセッ…

【Unity】System.Text.Json を使えるようにするだけのパッケージ「Kogane.System.Text.Json」を GitHub で公開しました

リポジトリ 使用例 using System.Text.Encodings.Web; using System.Text.Json; using UnityEngine; public sealed class Character { public int Id { get; set; } public string Name { get; set; } } public class Example : MonoBehaviour { private voi…

【Unity】Windows 向けにビルドした .exe のウィンドウのフレームをボーダーレスに変更できる機能「Kogane.ExeWindowFrameChanger」を GitHub で公開しました

リポジトリ 使用例 #if UNITY_EDITOR || UNITY_STANDALONE_WIN using Kogane; using UnityEngine; public class Example : MonoBehaviour { private void Update() { if ( Input.GetKeyDown( KeyCode.Z ) ) { ExeWindowFrameChanger.ChangeToBorderless(); }…

【Unity】TextMeshPro の FontAsset をスクリプトから更新するエディタ拡張「Kogane TMP_FontAsset Updater」を GitHub に公開しました

リポジトリ 開発環境 Windows 10 Unity 2021.2.7f1 TextMeshPro 3.0.6 基本的な使い方 using Kogane.TMP_FontAssetUpdater; using TMPro; using UnityEditor; using UnityEngine; using UnityEngine.TextCore.LowLevel; public static class Example { [Menu…

【Unity】計測した処理時間を Chrome でプロファイリングできるようにするパッケージ「Kogane Complete Events Tracer」を GitHub に公開しました

リポジトリ 使用例 using System.IO; using System.Threading.Tasks; using Kogane.CompleteEventsTracer; using UnityEngine; public sealed class Example : MonoBehaviour { private async void Start() { Debug.Log( "開始" ); var tracer = new Complet…

【Unity】選択した Package を Assets フォルダに移動するエディタ拡張「Kogane Package To Asset」を GitHub に公開しました

リポジトリ 使用例 使い方 Assets フォルダに移動したい Package を右クリックして「Package to Asset」からコマンドを選択します 項目 内容 Including Dependencies 依存関係も含めて選択された Package を Assets フォルダに移動 Excluding Dependencies …

【Unity】オブジェクトの参照が Missing Reference になっているかどうかを確認できるクラス「UniMissingReferenceUtils」を GitHub に公開しました

リポジトリ 使い方 using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var gameObject = Selection.activeGameObject; var hasMissingReference = MissingRefer…

【Unity】UnityEngine のいくつかの API の静的プロパティの情報を JSON 形式で取得できるクラス「UniJsonUnityEngine」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; public class Example : MonoBehaviour { private void Awake() { Debug.Log( JsonUnityEngineApplication.Get() ); Debug.Log( JsonUnityEngineDebug.Get() ); Debug.Log( JsonUnityEngineSceneManagem…

【Unity】シーンを保存した時にそのシーンが使用しているすべての SpriteAtlas の参照を自動で保持するコンポーネント「UniSpriteAtlasReferencer」を GitHub に公開しました

リポジトリ 使い方 シーンに存在するゲームオブジェクトに「SpriteAtlasReferencer」します これで、シーンを保存した時にそのシーンが使用しているすべての SpriteAtlas の参照が 「SpriteAtlasReferencer」に自動で保持されるようになります シーンをアセ…

【Unity】文字列の置換ルールを管理する構造体「UniStringReplaceRule」を GitHub に公開しました

リポジトリ 使用例 通常 using UnityEngine; public class Example : MonoBehaviour { private void Awake() { var name = "ピカチュウ"; var result = name.Replace( "ピカチュウ", "カイリュー" ); Debug.Log( result ); // カイリュー } } UniStringRepla…

【Unity】エディタの現在のプラットフォームが適切ではない場合にログを出力するエディタ拡張「UniPlatformChecker」を GitHub に公開しました

リポジトリ 使い方 Unity の Project Settings を開いて「Kogane > UniPlatformChecker」を選択して 「Build Target Groups」に適切なプラットフォームを設定します もしも Unity エディタのプラットフォームが設定したプラットフォームではない場合は Unity…

【Unity】エディタで使用されているスタイルシート(.uss)をエクスポートするエディタ拡張「UniStyleSheetExporter」を GitHub に公開しました

リポジトリ 実装環境 Unity 2020.2.0b2 使い方 Unity メニューの「Edit > UniStyleSheetExporter > Export」を選択すると エディタで使用されているスタイルシート(.uss)をエクスポートできます

【Unity】すべてのシーンに対して処理を行うクラス「UniSceneProcessor」を GitHub に公開しました

リポジトリ 使用例 すべてのシーンに対して処理を行う using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { SceneProcessor.ProcessAllScenes ( scene => { // シ…

【Unity】すべてのシーンやプレハブに存在するすべてのゲームオブジェクトに対して処理を行うクラス「UniGameObjectProcessor」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Example { /// <summary> /// すべてのシーンに存在するゲームオブジェクトに BoxCollider をアタッチします /// </summary> [MenuItem( "Tools/Add BoxCollider to Scene" )] priv…

【Unity】文字列を他の型に変換する拡張メソッド「UniStringParseExtensionMethods」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; public class Example : MonoBehaviour { private void Awake() { // 文字列を以下の型に変換する拡張メソッド // sbyte, byte, char, short, ushort, int, uint, long, ulong // float, double, decima…

【Unity】シーン遷移の履歴を管理するクラス「UniSceneLoadHistory」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; using UnityEngine.SceneManagement; public class Example : MonoBehaviour { private SceneLoadHistory m_history; private void Awake() { // シーン遷移の履歴の保存最大件数 var historyCount = 5;…

【Unity】GameObject、Component 型の拡張メソッド「UniGameObjectComponentExtensionMethods」を GitHub に公開しました

リポジトリ GameObject using Kogane; using UnityEngine; public class Example : MonoBehaviour { private void Start() { // GetComponent します // コンポーネントがアタッチされていない場合は AddComponent してから取得します var rigidbody = gameO…

【Unity】エディタの UI の表示間隔を狭くするパッケージ「UniThemeDefaultControlMargin0」を GitHub に公開しました

リポジトリ 比較 導入前 導入後

【Unity】Unity 再生時に再生ボタンを赤色にするパッケージ「UniPlayButtonRed」を GitHub に公開しました

リポジトリ 導入前 導入後

【Unity】エディタの UI を四角にするパッケージ「UniEditorSquareTheme」を GitHub に公開しました

リポジトリ 実装環境 Unity 2020.2b2 導入前 導入後

【Unity】エディタの UI を角丸にするパッケージ「UniEditorRoundedCornerTheme」を GitHub に公開しました

リポジトリ 実装環境 Unity 2020.2b2 導入前 導入後

【Unity】RectTransform の internal な機能にアクセスできるようにするパッケージ「UniRectTransformInternal」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // 「Some values driven by XXXX」の状態を取得 var rectTransform = ( RectTransform )…

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

リポジトリ 使用例 using Kogane; using System; using UnityEngine; public class Example : MonoBehaviour { public Action onClick; private void Awake() { // onClick 実行後に onClick は null になる ActionUtils.CallOnce( ref onClick ); } }

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

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public class Example { [MenuItem("Tools/Hoge")] private static void Hoge() { // Project ビューで選択されているフォルダと、 // そのフォルダ内のすべてのサブフォルダのパス…

【Unity】EditorUtility.DisplayDialog に関する記述を短く書けるようにするクラス「UniEditorDialog」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEditor; public class Example { private static readonly EditorDialog m_editorDialog = new EditorDialog( "【ここにタイトル】" ); [MenuItem( "Tools/Hoge" )] private static void Hoge() { // OK ダイア…

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

リポジトリ 使用例 using Kogane; using UnityEngine; using UnityEngine.UI; public class Example : MonoBehaviour { public Image m_image; private void Awake() { // Inspector で「It looks like~」が表示されている場合 true Debug.Log( ImageUtils.I…

【Unity】Mathf.Clamp、Mathf.Max、Mathf.Min を拡張メソッドで呼び出せるようにするパッケージ「UniClampExtensionMethods」を GitHub に公開しました

リポジトリ 使用例 using Kogane; using UnityEngine; public class Example : MonoBehaviour { private void Awake() { int i = 25; Debug.Log( i.Clamp( 0, 100 ) ); Debug.Log( i.Max( 100 ) ); Debug.Log( i.Min( 0 ) ); float f = 25f; Debug.Log( f.Cl…

【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 の開始終了時に呼び出されるコー…