コガネブログ

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

【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 ファイルを開くアプリ…

【Unity】コンパイル時間を計測するエディタ拡張「UniCompileTimeMeasurer」を GitHub に公開しました

リポジトリ 使い方 Preferences の「UniCompileTimeMeasurer」の項目を開いて 「Enabled」をオンにすることでコンパイル時間が計測されるようになります 計測されたコンパイル時間は Unity メニューの「Window > UniCompileTimeMeasurer」から確認できます

【Unity】Console ウィンドウを操作する internal な機能を使用できるようにするパッケージ「UniLogEntriesInternal」を GitHub に公開しました

リポジトリ 使用例 using UniLogEntriesInternal; using UnityEditor; using UnityEngine; public class Example { [MenuItem( "Tools/Log" )] private static void Log() { int count = 3; for ( int i = 0; i < count; i++ ) { Debug.Log( "ピカチュウ" );…

【Unity】Color 型と16進数、HTML カラー形式の文字列の変換ができる機能「UniColorUtils」を GitHub に公開しました

リポジトリ 使用例 using UniColorUtils; using UnityEngine; public class Example : MonoBehaviour { private void Start() { // RGBA(1.000, 0.502, 0.000, 1.000) Debug.Log( ColorUtils.FromRGB( 255, 128, 0 ) ); // RGBA(1.000, 0.502, 0.000, 1.000)…

【Unity】Git のブランチ名やコミットハッシュ、コミットログを管理するスクリプトを生成するエディタ拡張「UniGitUtils」を GitHub に公開しました

リポジトリ 使用例 using UniGitUtils; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Log" )] private static void Log() { var option = new CommitLogOption ( count: 10, isNoMerges: false, format: "%h %cd…

【Unity】テクスチャや SpriteAtlas のインポート設定を自動化するエディタ拡張「UniTexturePreprocessor」を GitHub に公開しました

リポジトリ 使い方 Project ビューの「+ > UniTexturePreprocessor」から設定を管理するアセットを作成できます 「TextureImporterSettings」は テクスチャの Import Settings を上書きする設定を管理するアセットです 上書きしたい項目をチェックして、上書…

【Unity】親オブジェクトが子オブジェクトをすべて内包するように親オブジェクトの位置とサイズを調整するエディタ拡張「UniParentRectTransformFitter」を GitHub に公開しました

リポジトリ 使い方 Inspector で RectTransform の項目を右クリックして「Fit Children」を選択します Undo に対応しています 孫オブジェクトに対応しています Scale に対応しています

【Unity】External Tools の Android の項目の取得または設定ができるパッケージ「UniAndroidExternalTools」を GitHub に公開しました

リポジトリ 使用例 using UniAndroidExternalTools; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Log" )] private static void Log() { // JDK Installed with Unity (recommended) Debug.Log( "JdkInstalledWi…

【Unity】SpriteAtlas.GetSprite したスプライトをキャッシュするクラス「UniSpriteAtlasCacher」を GitHub に公開しました

リポジトリ 使用例 using UniSpriteAtlasCacher; using UnityEngine; public class Example : MonoBehaviour { public SpriteAtlasCacher m_cacher; private void Start() { // 指定されたスプライトを SpriteAtlas.GetSprite して内部でキャッシュする var …

【Unity】コマンドライン引数を解析して指定されたクラスのインスタンスに変換するパッケージ「UniCommandLineParser」を GitHub に公開しました

リポジトリ 使用例 Unity.exe ^ -batchMode ^ -quit ^ -executeMethod Example.Run ^ -myOptionInt 25 ^ -myOptionFloat 2.5 ^ -myOptionString "ピカチュウ" ^ -myOptionBool using System; using UniCommandLineParser; using UnityEngine; public static …

【Unity】Unity エディタのタイトルを変更できるエディタ拡張「UniEditorWindowTitleChanger」を GitHub に公開しました

リポジトリ 使用例 using UniEditorWindowTitleChanger; using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { EditorWindowTitleChanger.SetTitle( "ピカチュウ" ); } } 謝辞 このリポジトリは下記…

【Unity】参照型のパラメータを右クリックした時のメニューに GetComponent を追加するエディタ拡張「UniGetComponentContextualPropertyMenu」を GitHub に公開しました

リポジトリ 使用例 using UnityEngine; public class Test : MonoBehaviour { public BoxCollider bocCollider; public BoxCollider[] boxColliders; }

【Unity】シリアライズ対象の変数に自動で参照を割り当てるエディタ拡張「UniGetComponentAttribute」を GitHub に公開しました

リポジトリ 使用例 using UniGetComponentAttribute; using UnityEngine; public class Test : MonoBehaviour { [GetComponent] public BoxCollider m_boxCollider; [GetComponentInParent] public BoxCollider m_boxColliderInParent; [GetComponentInParen…

【Unity】ゲームオブジェクトの複製時に名前の末尾に数値を付けないようにするエディタ拡張「UniGameObjectDuplicationHooker」を GitHub に公開しました

リポジトリ 標準の Duplicate コマンド(Ctrl + D)の挙動を上書きします 複数のゲームオブジェクトの複製に対応しています Undo に対応しています プレハブのインスタンスの複製に対応しています 複製時に transform のプロパティに誤差が生じないようにし…

【Unity】Hierarchy を右クリックした時に表示されるメニューをカスタマイズできるエディタ拡張「Unity Hierarchy Menu Customizer」を GitHub に公開しました

はじめに Hierarchy を右クリックした時に表示されるメニューをカスタマイズできるエディタ拡張 「Unity Hierarchy Menu Customizer」を GitHub に公開しました 使用例 インストール "com.baba_s.unity-hierarchy-menu-customizer": "https://github.com/bab…

【Unity】Project ビューを右クリックした時に表示されるメニューをカスタマイズできるエディタ拡張「Unity Project Window Menu Customizer」を GitHub に公開しました

はじめに Project ビューを右クリックした時に表示されるメニューをカスタマイズできるエディタ拡張 「Unity Project Window Menu Customizer」を GitHub に公開しました 使用例 インストール "com.baba_s.unity-project-window-menu-customizer": "https://…

【Unity】.unitypackage で追加したアセットを削除できるエディタ拡張「Unity Package Asset Deleter」を GitHub に公開しました

はじめに .unitypackage で追加したアセットを削除できるエディタ拡張 「Unity Package Asset Deleter」を GitHub に公開しました インストール "com.baba_s.unity-package-asset-deleter": "https://github.com/baba-s/unity-package-asset-deleter.git", m…

【Unity】シーン遷移時に簡単にデータを渡すことができるパッケージ「Unity Scene Data Transfer」を GitHub に公開しました

はじめに シーン遷移時に簡単にデータを渡すことができるパッケージ 「Unity Scene Data Transfer」を GitHub に公開しました インストール "com.baba_s.unity-scene-data-transfer": "https://github.com/baba-s/unity-scene-data-transfer.git", manifest.…

【Unity】C# 7.0 新機能の分解(Deconstruction)を Unity のいくつかの型で使用できるようにするパッケージ「Uni Deconstruction」を GitHub に公開しました

はじめに C# 7.0 新機能の分解(Deconstruction)を Unity のいくつかの型で使用できるようにするパッケージ 「Uni Deconstruction」を GitHub に公開しました バージョン Unity 2018.3.11f1 インストール "com.baba_s.uni_deconstruction": "https://github…

【Unity】FPS、GC 発生回数、メモリ使用量を実機で確認できるプロファイラの UI「UniSimpleProfiler」を GitHub に公開しました

はじめに FPS、GC 発生回数、メモリ使用量を実機で確認できるプロファイラの UI 「UniSimpleProfiler」を GitHub に公開しました(実機なら GC Alloc は発生しません) バージョン Unity 2018.3.9f1 準備 UniSimpleProfiler は TextMesh Pro を使用するため…

【Unity】unity-webview のマージンを RectTranform から設定できる機能「UniWebViewMarginsFromRectTransform」を GitHub に公開しました

はじめに unity-webview のマージンを RectTranform から設定できる機能 「UniWebViewMarginsFromRectTransform」を GitHub に公開しました バージョン Unity 2018.3.11f1 使い方 var rectTransform = GetComponent<RectTransform>(); var margins = WebViewUtils.ToMargins</recttransform>…

【Unity】シンボルを簡単に定義できるエディタ拡張「UniSymbol」を GitHub に公開しました

はじめに シンボルを簡単に定義できるエディタ拡張 「UniSymbol」を GitHub に公開しました バージョン Unity 2018.3.11f1 下準備 UniSymbol を使用する場合は「Odin」を導入する必要があります https://assetstore.unity.com/packages/tools/utilities/odin…