コガネブログ

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

2025-03-01から1ヶ月間の記事一覧

【Unity】Mac で EditorPrefs の内容を確認する方法

概要 ~/Library/Preferences/com.unity3d.UnityEditor5.x.plist EditorPrefs の内容は上記のファイルに保存されている。 defaults read com.unity3d.UnityEditor5.x > unity_prefs.txt open unity_prefs.txt 上記のコマンドで EditorPrefs の内容をテキスト…

【Rider】特定のファイルはコードクリーンアップの対象外にする方法

概要 [*generated.cs] generated_code = true .editorconfig に上記のように追加する。 参考サイト様

【Unity】RevenueCat が iOS 12 でクラッシュする場合

はじめに signal SIGABRT RevenueCat を導入した Unity プロジェクトで iOS ビルドして Xcode 16.2 でビルドして iOS 12 で実行したら 上記のエラーが発生してアプリがクラッシュする現象に遭遇した。 m_purchases.SetLogLevel( Purchases.LogLevel.Verbose …

【Unity】「Cannot launch using specified scheme」

概要 Cannot launch using specified scheme The specified scheme name was not found, or there are no schemes in the workspace. RevenueCat を導入した Unity プロジェクトを iOS ビルドしたら Xcode ビルド時に上記のダイアログが出てビルドできない現…

【Unity】「Module 'PurchasesHybridCommon' not found」

概要 Module 'PurchasesHybridCommon' not found RevenueCat を導入した Unity プロジェクトで iOS ビルドして Xcode ビルド時に上記のエラーが発生した場合は 「External Dependency Manager for Unity」を入れ忘れている。 公式の手順に従って「External D…

【Unity】Rider のインテリセンスで「MustBeEqual」などを非表示にする方法

概要 Rider のインテリセンスで「MustBeEqual」などを非表示にしたいなら 設定 | エディター | 一般 | 自動インポート を開いて 「次の型/メンバーをインポート機能から除外する」に以下の項目を追加して保存する。 UnityEngine.Assertions.Must.MustExtensi…

【Unity】コンパイルに失敗したら Mac の通知を表示するエディタ拡張の例

概要 brew install terminal-notifier 上記のコマンドで terminal-notifier をインストールしておく。 using System.Diagnostics; using System.IO; using System.Linq; using UnityEditor; using UnityEditor.Compilation; [InitializeOnLoad] internal sta…

【Unity】Mac の通知を表示するエディタ拡張の例

概要 brew install terminal-notifier 上記のコマンドで terminal-notifier をインストールしておく。 using System.Diagnostics; using UnityEditor; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { // `whic…

【Unity】コンパイルに失敗したらビープ音を再生する例

概要 using System.Linq; using UnityEditor; using UnityEditor.Compilation; [InitializeOnLoad] internal static class Example { static Example() { CompilationPipeline.assemblyCompilationFinished -= OnFinished; CompilationPipeline.assemblyComp…

【Unity】EditorBuildSettingsScene.GetActiveSceneList の使用例

概要 var scenePaths = EditorBuildSettings.scenes .Where( x => x.enabled ) .Select( x => x.path ) .ToArray() ; foreach ( var scenePath in scenePaths ) { Debug.Log( scenePath ); } 上記のような処理を var scenes = EditorBuildSettings.scenes; v…

【Unity】BuildTarget を NamedBuildTarget に変換する例

概要 using UnityEditor; using UnityEditor.Build; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var buildTarget = BuildTarget.iOS; var buildTargetGroup = BuildPipeline.GetBuildT…

【Unity】BuildTargetGroup を NamedBuildTarget に変換する例

概要 using UnityEditor; using UnityEditor.Build; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var buildTargetGroup = BuildTargetGroup.iOS; var namedBuildTarget = NamedBuildTar…

【Unity】Player Settings の Icon を一括で設定する例

概要 using System; using UnityEditor; using UnityEditor.Build; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var icon = AssetDatabase.LoadAssetAtPath<Texture2D>( "" ); var namedBuildTarge</texture2d>…

【Unity】PlayerSetting の Default Icon をスクリプトから変更する例

概要 using UnityEditor; using UnityEditor.Build; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var icon = AssetDatabase.LoadAssetAtPath<Texture2D>( "" ); PlayerSettings.SetIcons ( buildTa</texture2d>…

【Unity】Rider 2024.3 なら IL2CPP ビルドのデバッグ機能で Scene の Hierarchy の情報を見られる

検証環境 Unity 6000.0.40f1 JetBrains Rider Editor 3.0.34 JetBrains Rider 2024.3.6 概要 Unity の Package Manager で 「JetBrains Rider Editor」を最新版にアップデートすると、 JetBrains Rider 2024.3 で追加された IL2CPP Debug support が使えるよ…

【Unity】UnityEditor.GameObjectUtility.DuplicateGameObject でゲームオブジェクトを複製する方法

概要 using UnityEditor; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var gameObject = Selection.activeGameObject; var clone = GameObjectUtility.DuplicateGameObject( gameObject ); Selection.activ…

【Unity】ConsoleWindowUtility.GetConsoleLogCounts で Console のログの数を取得する例

概要 using UnityEditor; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { ConsoleWindowUtility.GetConsoleLogCounts ( error: out var error, warn: out var warn, log: out var log ); D…

【Unity】ConsoleWindowUtility.consoleLogsChanged は Console のログが追加・クリアされた時に呼ばれる

概要 using UnityEditor; [InitializeOnLoad] internal static class Example { static Example() { ConsoleWindowUtility.consoleLogsChanged += OnChanged; } private static void OnChanged() { } }

【Unity】Unity 6 から Scene ビューで Ctrl + 右クリックすると重なっているオブジェクトを選択できる

概要 Unity 6 から Scene ビューで Ctrl + 右クリックすると マウスカーソルの位置に重なっているオブジェクトがリストで表示され、 そこから任意のオブジェクトを選択できるようになった。

【Unity】HandleUtility.GetOverlappingObjects で Scene ビューの指定した位置にあるすべてのオブジェクトを取得できる

使用例 using System.Collections.Generic; using UnityEditor; using UnityEngine; [InitializeOnLoad] internal static class Example { static Example() { // HandleUtility.GetOverlappingObjects は // Scene の GUI イベント中じゃないと使えないらし…

【Unity】MenuItem に secondaryPriority を渡して表示順を細かく調整できる

概要 using UnityEditor; internal static class Example { [MenuItem( "Tools/C", priority = 1 )] private static void C() { } [MenuItem( "Tools/B", priority = 1 )] private static void B() { } [MenuItem( "Tools/A", priority = 1 )] private stati…

【Unity】CompareTag は string よりも TagHandle を使う方が高速

概要 using UnityEngine; internal sealed class Player : MonoBehaviour { private static TagHandle? m_enemyTagHandle; private void OnTriggerEnter2D( Collider2D other ) { m_enemyTagHandle ??= TagHandle.GetExistingTag( "Enemy" ); if ( other.Com…

【Unity】EditorUtility.OpenPropertyEditor で指定したオブジェクトの Property ウィンドウを表示できる

概要 using UnityEditor; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { EditorUtility.OpenPropertyEditor( Selection.activeObject ); } } EditorUtility.OpenPropertyEditor を使うと 上記のような Proper…

【Unity】AssetDatabase.TryGetAssetFolderInfo の使用例

概要 using UnityEditor; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var assetGUID = Selection.assetGUIDs[ 0 ]; var path = AssetDatabase.GUIDToAssetPath( assetGUID ); var isAs…

【Unity】AssetDatabase.GetScriptableObjectsWithMissingScriptCount の使用例

概要 using UnityEditor; using UnityEngine; internal static class Example { [MenuItem( "Tools/Example" )] private static void Run() { var assetGUID = Selection.assetGUIDs[ 0 ]; var assetPath = AssetDatabase.GUIDToAssetPath( assetGUID ); Deb…

【Unity】AndroidApplication クラスから unityPlayer や currentActivity を取得する方法

概要 Unity 6000.0.7f1 で追加された AndroidApplication クラスを使用すると unityPlayer や currentActivity を取得できます。 これまで // 機内モードかどうかを取得する例 using var unityPlayer = new AndroidJavaClass( "com.unity3d.player.UnityPlay…

【Unity】iOS / Android のテキストサイズを取得する方法

概要 using TMPro; using UnityEngine; using UnityEngine.Accessibility; internal sealed class Example : MonoBehaviour { [SerializeField] private TMP_Text m_tmpText; private void Awake() { AccessibilitySettings.fontScaleChanged += fontScale =…

【Unity】Game ビューのツールバーを非表示にする例

概要 using System; using System.Reflection; using UnityEditor; internal static class Example { [MenuItem( "Tools/Run" )] private static void Run() { const BindingFlags bindingAttrs = BindingFlags.Instance | BindingFlags.NonPublic; var game…

【Unity】2022.3.45f1 で JetBrains.Annotations.MustDisposeResource が使えるようになった

概要 破棄していないインスタンスがわかるようになる。 参考サイト様

【Unity】Game ビューの解像度を特定の範囲でのみ変更する構造体

ソースコード #if UNITY_EDITOR using System; using UnityEditor; namespace Kogane { public struct SetPlayModeWindowCustomRenderingResolutionScope : IDisposable { private readonly uint m_width; private readonly uint m_height; private bool m_i…