はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

2023-08-01から1ヶ月間の記事一覧

【C#】unsafeを用いずにReadOnlySpan<char>からSpan<char>に変換をして中身を好き勝手にいじる

C#

はじめに 今回はunsafeを用いずにReadOnlySpan<Span>からSpan<char>に変換する方法について紹介をしたいと思います。 ReadOnlySpan<char> str = "hello, world"; var span = MemoryMarshal.CreateSpan(ref MemoryMarshal.GetReference(str), str.Length); // unsafe使わずとも</char></char></span>…

【C#】Unsafe.WriteUnalignedとMemoryMarshal.GetReferenceとSpanを組み合わせてメモリのコピーを行う

C#

はじめに 今回はUnsafe.WriteUnalignedとMemoryMarshal.GetReferenceとSpanを組み合わせてメモリのコピーを行ってみようという記事になります。 // サンプルコード public static void Main(string[] args) { int value = 999; // 231, 3, 0, 0 Console.Writ…

【C#】64ビットの擬似乱数生成器"Splitmix64"を実装してみる

C#

はじめに 今回はSplitmix64という擬似乱数生成器をC#で実装してみようという記事になります。 はじめに 概要 実装 参考 概要 Splitmix64は64ビットの高速な疑似乱数生成器です。C#で64ビットの型はlongやulongとかですね。 64ビットの状態のみを使用した非常…

【Unity】Application.logMessageReceivedを用いてUnityのログメッセージが発行されたときに処理を行う

はじめに 今回はUnityのログメッセージが発行されたときに処理を挟むことができるApplication.logMessageReceivedについて取り上げたいと思います。 ログメッセージが発行されたときに受信するためのイベントハンドラーこのイベントはメインスレッドでのみ動…

【Unity】エディタ拡張でPrefabStageUtilityを用いてPrefab ModeでPrefab Assetを開いたりPrefab stageを取得したりする

はじめに 今回はUnityEditor.SceneManagement.PrefabStageUtilityを用いて、Prefab Modeでアセットを開いたり、Prefab stageを取得したりする記事になります。docs.unity3d.com PrefabStageUtility.OpenPrefabを実行した様子 はじめに 概要 PrefabStageUtili…

【C#】MemoryMarshal.Castを利用してある型の配列を他の型の配列に変換をする

はじめに 今回はMemoryMarshal.Castについて取り上げたいと思います。learn.microsoft.com // int[]からbyte[]に変換を行うサンプルコード // 変換前:int[] (intは4バイト) Span<int> from = Enumerable.Range(int.MaxValue - 5, 5).ToArray(); // 変換後:byte[</int>…

【Rider】メソッド抽出(extract method)というリファクタリング機能がとても便利

はじめに 今回はメソッド抽出(extract method)というRiderのリファクタリング機能について紹介したいと思います。pleiades.io メソッドの抽出をしている様子 はじめに 概要 やり方 メソッドの抽出 ローカル関数の抽出 概要 Riderのメソッド抽出を利用するこ…

【Unity】UnityEngine.Scripting.PreserveAttributeを用いてストリッピングを防止する(実は独自PreserveAttributeでも対応可)

はじめに 今回はPreserveAttribute属性を用いてストリッピングを防止する方法について紹介したいと思います。 docs.unity3d.com はじめに 概要 使い方 実験 UnityEngine.dllに依存しないために 概要 まずはコードストリッピングについて概要を載せておきます…

【Unity】エディタ上でBuilt-inに存在するアイコンのTextureを取得する方法

はじめに 今回はUnityEditorにビルドインで存在するアイコンのTextureを取得する方法を紹介したいと思います。 アイコンを使用している様子 はじめに やり方 やり方 EditorGUIUtility.Loadを用いてbuilt-inリソースを読み込みます。 public static Object Lo…

REST Clientを用いてVisual Studio Codeで直接HTTPリクエストを送信・レスポンスを表示する

はじめに 今回はVSCodeの拡張機能の一つであるREST Clientを紹介したいと思います。 REST Client allows you to send HTTP request and view the response in Visual Studio Code directly. It eliminates the need for a separate tool to test REST APIs a…

【Unity】Unity Test Frameworkでログ出力のテストをする方法(特にDebug.LogError, Debug.LogException)

はじめに 今回はログ出力のテスト方法について紹介をしようと思います。 ログ出力をしている例 はじめに 概要 テスト方法 概要 Unity Test FrameworkではDebug.LogErrorやDebug.LogExceptionが実行されるとテストが失敗になる仕様にデフォルトでなっています…