コガネブログ

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

2025-03-09から1日間の記事一覧

【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 =…