コガネブログ

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

2023-01-01から1年間の記事一覧

【C#】文字列を時計回りに回転する関数

ソースコード private static string RotateClockwise( string input, int count ) { for ( var i = 0; i < count; i++ ) { input = RotateClockwise( input ); } return input; } private static string RotateClockwise( string input ) { var lines = inp…

【Unity】Vector2 の配列やリストで Average を使えるようにする拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Linq; using UnityEngine; namespace Kogane { public static class Vector2ExtensionMethods { public static Vector2 Average( this IEnumerable<Vector2> self ) { var enumerable = s</vector2>…

【Unity】Unity 2022.1 と 2022.3 のコンパイル時間比較

概要 バージョン コンパイル時間 2022.1.23f1 4.25 秒 2022.3.6f1 3.38 秒 Unity 2022.3.6f1 にアップデートしたらコンパイル時間が約 1 秒短くなった

【Clibor】ツールチップを非表示にする方法

概要 Clibor の「設定 > ツールチップ」から設定できる

【Clibor】定型文の一覧で「メモ」を表示する方法

概要 Clibor の「設定 > 定型文」から設定できる

【Illustrator】「スクリーン用に書き出し」をスクリプトから実行する例

概要 // フォーマットの設定 var options = new ExportForScreensOptionsPNG24(); options.scaleType = ExportForScreensScaleType.SCALEBYWIDTH; // 幅 options.scaleTypeValue = 512; // 512 px // アートボードの選択 var itemToExport = new ExportForSc…

【Illustrator】「ファイル "XXXX.jsx" に含まれているスクリプトを実行しようとしています」を非表示にする方法

概要 ファイル "XXXX.jsx" に含まれているスクリプトを実行しようとしています。 このスクリプトを実行しますか? または、Illustrator におけるスクリプトの使用と、 このメッセージの無効化について、詳しくは、「詳細情報」を選択してください。 スクリプ…

【Rider】「設定 > ツール > 保存時のアクション」が表示されない場合

概要 「設定 > ツール > 保存時のアクション」が表示されない現象に遭遇した Rider を再起動したら表示されるようになった

【Illustrator】スクリプトが存在するフォルダの絶対パスを取得する方法

概要 var currentScript = File($.fileName); var absolutePath = currentScript.path;

【Unity】Failed to gain exclusive lock to the Cloud Firestore client's offline persistence.

概要 java.lang.RuntimeException: Internal error in Cloud Firestore (X.X.X) java.lang.RuntimeException: Failed to gain exclusive lock to the Cloud Firestore client's offline persistence. This generally means you are using Cloud Firestore fr…

【Unity】android.os.Build の情報を取得する例

概要 using var androidJavaClass = new AndroidJavaClass( "android.os.Build" ); return $@"BOARD: {androidJavaClass.GetStatic<string>( "BOARD" )} BOOTLOADER: {androidJavaClass.GetStatic<string>( "BOOTLOADER" )} BRAND: {androidJavaClass.GetStatic<string>( "BRAND" )} </string></string></string>…

【Unity】SpriteRenderer の Sprite が Missing なプレハブをすべて見つけるエディタ拡張

ソースコード using System.Linq; using System.Text; using UnityEditor; using UnityEngine; internal sealed class MissingSpriteFinder : EditorWindow { [MenuItem( "Window/Missing Sprite Finder" )] private static void Open() { GetWindow<MissingSpriteFinder>(); } pr</missingspritefinder>…

【C#】文字列の中に重複する文字が存在する場合 true を返す拡張メソッド

C#

ソースコード private static bool HasDuplicateCharacters( string self ) { for ( var i = 0; i < self.Length - 1; i++ ) { for ( var j = i + 1; j < self.Length; j++ ) { if ( self[ i ] == self[ j ] ) { return true; } } } return false; } 使用例 …

【C#】配列やリストの中に重複する要素が存在する場合 true を返す拡張メソッド

C#

ソースコード private static bool HasDuplicateElements<T>( this IReadOnlyList<T> self ) { for ( var i = 0; i < self.Count - 1; i++ ) { for ( var j = i + 1; j < self.Count; j++ ) { if ( self[ i ].Equals( self[ j ] ) ) { return true; } } } return f</t></t>…

【Unity】SpriteRenderer で Radial な Fill Amount を設定できる「Radial fill shader」

リポジトリ

【Unity】Jenkins からビルドする時に「Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.」

概要 ##### ExitCode 134 ##### Output Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object. at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.ExecutionCont…

【Unity】TextMesh Pro の Font Asset を作成する時に "ArgumentNullException: Value cannot be null."

概要 ArgumentNullException: Value cannot be null. TextMesh Pro の Font Asset を作成する時に上記の例外が発生して Font Asset が正常に作成できない現象に遭遇した Unity メニューの「Window > TextMeshPro > Import TMP Essential Resources」を 実行…

【Unity】TextMesh Pro の Glyph の BY をスクリプトから編集する例

概要 using System; using System.Text; using TMPro; using UnityEditor; internal static class Example { [MenuItem( "hoge/hoge" )] private static void Hoge() { const string path = "hoge.asset"; const string text = "あ"; var bytes = Encoding.U…

【Unity】Android のアプリを起動する MenuItem の例

ソースコード [MenuItem( MENU_ITEM_ROOT + "/アプリ起動" )] private static void LaunchApp() { var adbPath = $"{AndroidExternalToolsSettings.sdkRootPath}/platform-tools/adb"; var packageName = "com.hoge.fuga"; var activityName = "com.google.f…

【Unity】.apk を Android 端末にインストールする MenuItem の例

ソースコード [MenuItem( "Tools/.apk インストール" )] private static void InstallApk() { var adbPath = $"{AndroidExternalToolsSettings.sdkRootPath}/platform-tools/adb"; var apkPath = "hoge.apk"; var startInfo = new ProcessStartInfo { FileNa…

【Excel】罫線のデフォルトの色

カラーコード #D4D4D4

【雑記】ffmpeg で .mp3 を .ogg に変換して音量を上げてモノラルからステレオにする .bat の例

概要 ffmpeg ^ -i "input.mp3" ^ -af "volume=2.0" ^ -ac 2 ^ "output.ogg" -af "volume=2.0" で音量を 2 倍に -ac 2 でモノラルからステレオに

【C#】float 型がほぼ整数なら true を返す拡張メソッド

C#

ソースコード public static bool IsApproximatelyInteger( this float value, float tolerance ) { return Mathf.Abs( Mathf.Round( value ) - value ) <= tolerance; }

【C#】List から複数の要素を Remove する拡張メソッド

C#

ソースコード public static void Remove<T>( this List<T> self, IEnumerable<T> collection ) { foreach ( var item in collection ) { self.Remove( item ); } }</t></t></t>

【C#】配列やリストから重複する要素を取得する拡張メソッド

C#

ソースコード public static T[] FindDuplicatedElements<T>( this IReadOnlyList<T> self ) { return self .GroupBy( x => x ) .Where( x => 2 <= x.Count() ) .Select( x => x.Key ) .ToArray() ; }</t></t>

【C#】小数点以下を取得する方法

C#

余りを使用する方法 var number = 3.14f; var decimalPart = number % 1; if (decimalPart != 0) { // 浮動小数点以下が存在する場合の処理 } 文字列変換を使用する方法 var number = 3.14f; var numberString = number.ToString(); if (numberString.Contai…

【C#】起動している Microsoft PowerPoint のプロセスを終了する方法

C#

ソースコード foreach ( var process in Process.GetProcessesByName( "POWERPNT" ) ) { process.Kill(); }

【Unity】エディタ拡張で Python を実行する例

ソースコード using System.Diagnostics; using UnityEditor; using Debug = UnityEngine.Debug; public class Example { [MenuItem( "hoge/hoge" )] private static void Hoge() { var startInfo = new ProcessStartInfo { FileName = @"python", UseShellE…

【Unity】int 型の数値を 3 つの要素を持つ配列にランダムに分解する例

概要 [MenuItem( "hoge/hoge" )] private static void Hoge() { var number = 9; // 分解したい数値 var array = new int[ 3 ]; var remaining = number; for ( var i = 0; i < array.Length - 1; i++ ) { var maxValue = remaining - ( array.Length - i - …

【C#】文字列を回転する関数

C#

概要 123 456 789 上記の値を持つ string を 147 258 369 このように変換する関数 private static string TransposeString( string input ) { var lines = input.Split( '\n' ); var rowCount = lines.Length; var columnCount = lines[ 0 ].Length; var mat…