コガネブログ

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

【Unity】iOS / Android でストアページを開く構造体

リポジトリ 使用例 using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { // Pokémon GO のストアページを開く private readonly OpenStorePage m_openStorePage = new ( iosId: "1094591345", androidId: "com.nianticlabs.pok…

【Unity】Play Asset Delivery を使用している Android App Bundle を Android 端末にインストールできるクラス

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { var data = new InstallPlayAssetDeliveryAndroidAppBundleData ( androidAppBundlePath: …

【Unity】Project ウィンドウに拡張子を表示するエディタ拡張

リポジトリ 使用例

【Unity】マルチタッチの判定を無効化した Scroll Rect

リポジトリ 使用例 ScrollRect の代わりに SingleTouchScrollRect を使用します

【Unity】iOS / Android でストアのレビュー依頼を表示できるパッケージ

リポジトリ 使用例 using Cysharp.Threading.Tasks; using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { private async UniTaskVoid Start() { var result = await StoreReview.RequestReviewAsync(); Debug.Log( result ); }…

【Unity】再生中の AudioClip を停止できるコンポーネント

リポジトリ 使用例 using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { [SerializeField] private StoppableAudioPlayer m_player; [SerializeField] private AudioClip m_audioClip; private void Start() { // 再生します v…

【Unity】AudioClip のイントロ付きループ再生ができるコンポーネント

リポジトリ 使用例 using Kogane; using UnityEngine; public sealed class Example : MonoBehaviour { [SerializeField] private IntroAudioPlayer m_player; [SerializeField] private AudioClip m_introAudioClip; [SerializeField] private AudioClip m_…

【Unity】ビルド時に BuildPlayerOptions の情報を Resources フォルダのテキストファイルに書き込むエディタ拡張

リポジトリ 使用例 using System.Linq; using Kogane; using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { const bool isReleaseBuild = false; var options = new BuildPlayerOptions { scenes = E…

【Unity】ツールバーに Reload Assemblies をロックするかどうかを変更するボタンを追加するエディタ拡張

リポジトリ 使用例

【Unity】Device Simulator の internal な機能にアクセスできるパッケージ

リポジトリ 使用例 using Kogane; using UnityEditor; using UnityEngine; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { // Device Simulator で選択されているデバイスの名前を取得します Debug.Log( DeviceSim…

【Unity】GetComponentInChildren や GetComponentsInChildren で引数の型情報を文字列で渡せるようにする拡張メソッド

リポジトリ 使用例 using Kogane; using UnityEngine; public class Example : MonoBehaviour { private void Start() { var transform = gameObject.GetComponentInChildren( "Transform" ); var transforms = gameObject.GetComponentsInChildren( "Transf…

【Unity】配列やリストの None な要素をすべて削除できるエディタ拡張

リポジトリ 使用例

【Unity】コンポーネントをアタッチした時にゲームオブジェクトの名前をコンポーネント名にリネームするエディタ拡張

リポジトリ 使用例 using Kogane; using UnityEngine; [RenameGameObject] public sealed class Example : MonoBehaviour { }

【Unity】プレハブモードを開く時に Hierarchy の検索欄を保持するエディタ拡張

リポジトリ 使用例

【Unity】Inspector の Script の欄を有効にするエディタ拡張

リポジトリ 使用例

【Unity】コンポーネントの位置を指定したコンポーネントの上か下に自動で移動するエディタ拡張

リポジトリ 使用例 using Kogane; using UnityEngine; [MoveComponentUp( typeof( Rigidbody2D ) )] public sealed class Example : MonoBehaviour { } using Kogane; using UnityEngine; [MoveComponentDown( typeof( Rigidbody2D ) )] public sealed class…

【Unity】Build Settings の Scenes In Build から Deleted なシーンを自動で削除するエディタ拡張

リポジトリ 使用例 以下のタイミングで Build Settings の Scenes In Build から Deleted なシーンを自動で削除します シーンファイル(.unity)を削除した時 プロジェクトを保存した時 ビルドを開始した時

【Unity】AssemblyDefinitionAsset の References を名前順でソートする MenuItem を追加するエディタ拡張

リポジトリ 使用例 .asmdef やフォルダを選択した状態で右クリックして 「Kogane > Sort Assembly Definition References」を押すと 選択中の .asmdef や選択中のフォルダに含まれる すべての .asmdef の Assembly Definition References を 名前順でソート…

【Unity】ビルド時に Jenkins の情報を Resources フォルダのテキストファイルに書き込むエディタ拡張

リポジトリ 使用例 Project Settings で Jenkins の情報を書き込むテキストファイルの保存場所や 書き込むテキストファイルのフォーマットを設定します "C:\Program Files\Unity\Hub\Editor\2022.1.11f1\Editor\Unity.exe" ^ -quit ^ -batchmode ^ -executeM…

【Unity】ビルド時に Git の情報を Resources フォルダのテキストファイルに書き込むエディタ拡張

リポジトリ 使用例 Project Settings で Git の情報を書き込むテキストファイルの保存場所や 書き込むテキストファイルのフォーマットを設定します using UnityEngine; public class Example : MonoBehaviour { private void Awake() { var textAsset = Reso…

【Unity】検索中は Project ウィンドウにアセットのフォルダ名を表示するエディタ拡張

リポジトリ 使用例

【Unity】Device Simulator にデバイスの情報を表示するエディタ拡張

リポジトリ 使用例

【Unity】Device Simulator の Control Panel にデバイスを変更するボタンを追加するエディタ拡張

リポジトリ 使用例

【Unity】Device Simulator にデバイスのブックマーク機能を追加するエディタ拡張

リポジトリ 使用例 「Add Bookmark」を押すと現在使用しているデバイスをブックマークできます ブックマークしたデバイスを選択すると即座にそのデバイスに切り替えられます

【Unity】マウスカーソルの場所に Tooltip を表示できるエディタ拡張

リポジトリ 使用例 using Kogane; using UnityEditor; public static class Example { [MenuItem( "Assets/Hoge" )] public static void Hoge() { TooltipWindow.Open( "ピカチュウ" ); } }

【Unity】Console ウィンドウに検索ボタンを表示するエディタ拡張

リポジトリ 使用例 Console ウィンドウで検索したいテキストを Project Settings で設定します 項目 内容 Button Text ボタンに表示するテキスト Filtering Text ボタンを押した時に検索欄に入力するテキスト未入力ならボタンを押した時に Button Text に設…

【Unity】Inspector のコンポーネントのヘッダーにボタンを追加するエディタ拡張

リポジトリ 使用例 Remove Component Move Up / Move Down Copy Component / Paste Component Values

【Unity】EventSystem の情報をいつでも見られるようにする EditorWindow

リポジトリ 使用例 Unity メニューの「Window > Kogane > Event System Status」を選択すると EventSystem の情報をいつでも確認できるようになるため 現在どのオブジェクトをクリックしているかなどが常に確認できます

【Unity】デフォルトのオプションを指定できる System.Text.Json.JsonSerializer

リポジトリ 使用例 using System.Text.Encodings.Web; using System.Text.Json; using System.Text.Json.Serialization; using System.Text.Unicode; using UnityEngine; public sealed class Example : MonoBehaviour { private void Awake() { JsonSeriali…

【Unity】Inspector で Color 型を右クリックした時のメニューを追加するエディタ拡張

リポジトリ 使用例