2022-09-01から1ヶ月間の記事一覧
概要 閉じるボタンを押して閉じるとタブの情報が失われる Ctl + Q で終了するとタブの情報が保持される 参考サイト様
概要 var tilemap = GameObject.FindObjectOfType<Tilemap>(); プレハブモードでは FindObjectOfType を使ってもコンポーネントは見つからない var tilemap = PrefabStageUtility .GetCurrentPrefabStage() .FindComponentOfType<Tilemap>() ; 上記のようなコードを書くとコン</tilemap></tilemap>…
ソースコード using UnityEngine; namespace Kogane { public static class CameraExtensionMethods { public static Vector2 ScreenToWorldPoint2D ( this Camera self, Vector3 position ) { return self.ScreenToWorldPoint( position ); } public static…
概要 private void OnPreprocessAudio() { var example = Example.instance; } AssetPostprocessor の OnPreprocessAudio や OnPreprocessTexture で ScriptableSingleton にアクセスしたところ、初回は正常に値を取得できたが ScriptableSingleton の値を変…
概要 [MenuItem( "hoge/hoge" )] private static void Hoge() { var assetPath = "Assets/New Sprite Atlas.spriteatlas"; var spriteAtlas = AssetDatabase.LoadAssetAtPath<SpriteAtlas>( assetPath ); var packingSettings = spriteAtlas.GetPackingSettings(); packin</spriteatlas>…
概要 var list = importedAssets .Where( x => x.EndsWith( ".spriteatlas" ) || x.EndsWith( ".spriteatlasv2" ) ) .ToArray() ; アセットのパスの拡張子で SpriteAtlas かどうかを確認する場合は .spriteatlas だけではなく .spriteatlasv2 も確認する必要…
概要 Unity Hub から Unity を起動した状態で [MenuItem( "hoge/hoge" )] private static void Hoge() { Debug.Log( Application.isBatchMode ); // False } Application.isBatchMode にアクセスすると通常は False になるが private void OnPreprocessAudio…
概要 /// <summary> /// 継承しているすべての基底クラスと実装しているすべてのインターフェイスの Type を返します /// </summary> public static IEnumerable<Type> GetParentTypes( this Type self ) { if ( self == null ) yield break; foreach ( var x in self.GetInterfaces()</type>…
概要 /// <summary> /// 指定された基底クラスを継承しているもしくはインターフェイスを実装している場合 true を返します /// </summary> public static bool IsInherits( this Type self, Type baseOrInterfaceType ) { if ( self == null ) return false; if ( baseOrInterf…
ソースコード using System.Collections; using UnityEngine; [DisallowMultipleComponent] public sealed class Example : MonoBehaviour { private void OnEnable() { StartCoroutine( nameof( UpdateLateFixedUpdate ) ); } private void OnDisable() { S…
はじめに 「Editor History」を Unity プロジェクトに導入することで エディタの選択履歴を管理できるようになります 使用例 エディタ右上のアイコンから選択履歴を確認できます
概要 var window = ScriptableObject.CreateInstance<Example>(); window.titleContent = new GUIContent( "ピカチュウ" ); window.ShowAuxWindow(); titleContent を設定する</example>
概要 using UnityEngine; using UnityEngine.EventSystems; public sealed class Example : MonoBehaviour, IPointerUpHandler, IEndDragHandler { // マウスクリックやタップが離された時 void IPointerUpHandler.OnPointerUp( PointerEventData eventData …
概要 using var scope = new EditorGUILayout.VerticalScope(); GUILayout.FlexibleSpace(); if ( GUILayout.Button( icon, EditorStyles.iconButton ) ) { } GUILayout.FlexibleSpace(); EditorGUILayout.VerticalScope と GUILayout.FlexibleSpace を組み…
概要 using var scope = new EditorGUI.ChangeCheckScope(); var oldCount = m_list.Count; m_editor.OnInspectorGUI(); if ( !scope.changed && oldCount == m_list.Count ) return; Debug.Log( "ピカチュウ" ); エディタの GUI でリストに要素がドラッグさ…
ソースコード using System.Reflection; using System.Runtime.CompilerServices; namespace Kogane { public static class MethodInfoExtensionMethods { public static bool IsExtensionMethod( this MethodInfo self ) { return self.IsDefined( typeof( …
ソースコード public static class TypeExtensionMethods { public static bool IsNullable( this Type self ) { return Nullable.GetUnderlyingType( self ) != null; } }
はじめに 「Build Timestamp」を Jenkins に追加することで ビルド日時の環境変数を使用できるようになります 使用例 pipeline { agent any stages { stage('Initialize') { steps { script { echo "${BUILD_TIMESTAMP}" echo "${env.BUILD_TIMESTAMP}" } } …
概要 # LTS のインストール brew install jenkins-lts # 特定のバージョンの LTS のインストール brew install jenkins-lts@YOUR_VERSION # 起動 brew services start jenkins-lts # 再起動 brew services restart jenkins-lts # アップデート brew upgrade …
はじめに 公式サイトに書かれているとおりに /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 上記のコマンドを実行して Homebrew インストールした後に brew -v Homebrew が使えるかどうか上記のコマン…
概要 EditorGUILayout.Popup の displayedOptions に渡す文字列に対して .Replace( "/", "\u2215" ) 上記の処理を行えば「/」で階層が深くならなくなる 参考サイト様
概要 using Unity.CodeEditor; using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] public static void Hoge() { CodeEditor.CurrentEditor.OpenProject ( filePath: "Assets/Example.cs", line: 11, column: 20 ); } } たとえば…
概要 EventSystem の Preset を作成して Preset Manager に登録したら Hierarchy の Create メニューから EventSystem が作成できなくなった Unity を再起動したら作成できるように直った 開発環境 Unity 2022.1.11f1 macOS Monterey バージョン 12.5.1
概要 Event System の Send Navigation Events をオフにする
概要 UnityEngine.WSA.Application Auto Import に上記の文字列を追加する
概要 Unity.Mathematics.Random Auto Import に上記の文字列を追加する
拡張メソッド using NPOI.SS.UserModel; namespace Kogane { public static class ICellExtensionMethods { public static string GetValue( this ICell self ) { if ( self == null ) return string.Empty; return self.CellType switch { CellType.Numeric…
ソースコード using System; using System.IO; using UnityEditor; using UnityEngine; namespace Kogane.Internal { internal static class EditorWindowCapturer { [MenuItem( "Kogane/選択中の EditorWindow をキャプチャ" )] private static void Captur…
概要 [InitializeOnLoad] internal static class Example { static Example() { Debug.Log( ExampleSetting.instance ); } } InitializeOnLoad のタイミングで ScriptableSingleton にアクセスしたら UnityException: LoadSerializedFileAndForget is not al…