はなちるのマイノート

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

【Rider】メソッドセパレーター(Method separators)を表示してメソッドを分かりやすく表示する

はじめに 今回はRiderの機能の一つであるメソッドセパレーター(Method separator)を紹介したいと思います。pleiades.io メソッドセパレーターを表示している様子 はじめに 設定方法 結果 参考 設定方法 メニューバーからJetBrains Rider > Settings...を選択…

【C#】Dictionary.Addとインデクサーによる要素の追加で挙動がどう異なるか(重複するキーの場合にArgumentExceptionか上書き)

C#

はじめに Dictionaryに要素を加える際に、Dictionary.Addとインデクサーによる要素追加で少し挙動が異なります。 Dictionary<string, int> dictionary = new Dictionary<string, int>(); // Dictionary<TKey,TValue>.Add(TKey, TValue) // 既存のキーを指定した場合にはエラー(System.ArgumentExcept</tkey,tvalue></string,></string,>…

【Unity】UnityTestFramework上でパフォーマンス測定ができるPerformance Testing Packageの基礎的な使い方

はじめに 今回はPerformance Testing PackageというUnity Test Framework向けのパフォーマンス計測機能を提供するパッケージを紹介したいと思います。 The Unity Performance Testing Package extends Unity Test Framework with performance testing capabi…

【Unity】Unity Test Frameworkで特定の例外がスローされることをAssertする方法(Assert.Throws, Assert.Catch, Throws.TypeOf, Throws.InstanceOf)

はじめに 今回はUnity Test Frameworkでエラーのテストをする方法について紹介したいと思います。docs.nunit.org はじめに Assert.Throws Assert.Catch Assert.Thatを利用する 小ネタ Assert.Throws Assert.Throwsを利用することで特定の例外がスローされる…

【Unity】System.Text.Json v8.0.1をUnityで動かすまでの手順

はじめに 今回はSystem.Text.Jsonのv8.0.1をUnityで動作させる手順について紹介したいと思います。またSystem.Text.JsonをUnityの型に対応させる記事を前に書いたので、気になる方はそちらもチェックしてみてください。 engineering.dena.com はじめに その…

【Unity】ProjectWindowのエディタ拡張で色をつける際に色が暗くなってしまう問題の対処法

はじめに EditorApplication.projectWindowItemOnGUIを利用することでProject Windowに色をつける事ができます。 public static class ProjectWindowColorizer { [InitializeOnLoadMethod] private static void Init() { EditorApplication.projectWindowIte…

【Android】Macのターミナルにadbのパスを通す

はじめに 今回はMacのターミナルにadbのパスを通す方法について紹介します。 動作している様子 はじめに やり方 adbのパスを調べる PATHを通す 動作確認 やり方 adbのパスを調べる adbはAndroid SDK Platform-Toolsパッケージの中に入っています。 adb は、A…

【Unity】「Ignoring depth surface load action as it is memoryless」というエラーについて(Mac &MetalでScreenCapture.CaptureScreenshotを利用すると発生)

はじめに Ignoring depth surface load action as it is memorylessというエラーについて備忘録の意味合いも兼ねて書き残しておきたいと思います。 Ignoring depth surface load action as it is memoryless エラーが出ている様子 はじめに 概要 参考 概要 …

【Unity】Unityが利用しているMicrosoft.CodeAnalysis.CSharpのバージョンの確認方法(Mac)

はじめに 今回はUnityが利用しているMicrosoft.CodeAnalysis.CSharpのバージョンの確認方法を紹介したいと思います。Roslyn AnalyzerやSource Generatorを利用する場合はMicrosoft.CodeAnalysis.CSharpのバージョンによって利用できるバージョンが異なるため…

【Unity】エディタ拡張でスクリプトからテキストエディタを開く方法(InternalEditorUtility.OpenFileAtLineExternal)

はじめに 今回はスクリプトからテキストエディタを開く方法について紹介をしたいと思います。 はじめに 概要 使い方 さいごに 概要 公式ドキュメントに記載はないのですが、UnityCsReference(中のコード)をみるとInternalEditorUtilityクラスなるものが定義…

【Unity】マネージプラグインのGeneral設定項目について(Auto Reference, Validate References)

はじめに 今回はマネージプラグインのGeneral/Validate References設定項目について書きたいと思います。 マネージプラグインのGeneral はじめに その前に マネージプラグインとネイティブプラグイン プラグインのGeneral設定項目 Auto Referenceとは Valida…

【Unity】UnityWebRequestでBASIC認証をする方法

はじめに 今回はUnityWebRequestでBASIC認証をする方法について紹介をしたいと思います。docs.unity3d.com はじめに 概要 実験 概要 UnityWebRequestにヘッダー情報を追加するためにはUnityWebRequest.SetRequestHeaderを利用します。 public void SetReques…

【Unity】コマンドラインからUnity Test Frameworkのテストを実行する

はじめに 今回はコマンドラインからUnity Test Frameworkを実行する方法について紹介したいと思います。 はじめに やり方 -testResults -testPlatform さいごに やり方 まずはMacでEditorModeのテストをなるべくシンプルに実行してみたいと思います。Unityの…

【Unity】System.Text.JsonでUnityEngine.Colorのシリアライズ・デシリアライズに対応する

はじめに 今回はUnityEngine.ColorをSystem.Text.Jsonでシリアライズ・デシリアライズできるようにする方法を紹介したいと思います。learn.microsoft.com はじめに 環境 概要 コード さいごに 環境 Unity2023.1.17f1 MacBook Pro 2023 16inch, Apple M2 Pro …

【C#】パフォーマンス・バイナリサイズともに優れたシリアライザー「MessagePack for C#」の基礎的な使い方

C#

はじめに 今回はC#用のMessagePackシリアライザーであるMessagePack for C#の基礎的な使い方を紹介したいと思います。github.com はじめに 概要 環境 インストール方法 使い方 Keyのインデックスについて 配列かマップ(辞書)か シリアライズの前・デシリアラ…

【C#】Google.ProtoBufを利用してProtocol Buffersを扱う方法

C#

はじめに 先日protobuf-netの利用方法についての記事を書いたのですが、今回はGoogle製のライブラリGoogle.ProtoBugの利用方法について書きたいと思います。www.nuget.org github.com protobuf.dev はじめに 概要 サポート 環境 インストール方法 おまけ : R…

【C#】protobuf-netという非公式ライブラリを利用してProtocolBuffersを扱う方法

C#

はじめに 今回はprotobuf-netというライブラリを利用して.NET上でprotocol buffersを扱う方法を紹介したいと思います。www.nuget.org github.com はじめに 概要 サポートされているバージョン 環境 インストール方法 Riderプラグインの導入 使い方 .protoを…

【2023年を振り返り】大学院修了したり、新社会人になったり、Googleにインタビューされたり

はじめに 2024年始まりましたね。私にとっては2023年は人生の転換点的な一年になった気がします。毎年振り返り記事を書いていたので、今年もやっていきます。 www.hanachiru-blog.com はじめに 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 総評 202…

【Git Fork, Command】git commit --amendで前回のコミットメッセージを修正する

Git

はじめに 今回はgit commit --amendを利用して前回のコミットメッセージを修正する方法について紹介したいと思います。 はじめに GitForkでのやり方 Amendを実行 Force Pushする コマンドの場合 また補足ではありますが複数のコミットメッセージを編集したい…

【ForkとCommand】rebase + squashを活用して複数のコミットを一つのコミットにまとめる方法

Git

はじめに 今回はGit Fork or Git Commandを利用しながら、rebase + squachを使って複数のコミットを一つのコミットにまとめる方法について紹介したいと思います。 コミットを一つにまとめる はじめに Git Forkでのやり方 rebaseするコミットを指定する まと…

【C#】SemaphoreSlimを用いて複数のスレッドでの処理を同時に開始させる方法(テストにも便利)

はじめに 今回はSemaphoreSlimというリソースに同時にアクセスできるスレッドの数を制限できるクラスについて紹介したいと思います。learn.microsoft.com はじめに 概要 使い方 タイムアウトやCancellationToken 概要 SemaphoreSlimはリソースに同時にアクセ…

【Unity】BuildOptions.CleanBuildCacheが有効かどうかをEditor.Logから見分ける方法

はじめに 今回はBuildOptions.CleanBuildCacheが効いているどうかを判定する方法について紹介したいと思います。docs.unity3d.com www.hanachiru-blog.com はじめに 環境 概要 調べ方 環境 Unity 2022.3.8f1 概要 インクリメンタルビルドパイプラインを使用…

【C#, Unity】Test FrameworkにてType判定するときのIs.TypeOfとIs.InstanceOfの挙動の違いについて

はじめに 今回はNUnit.Framework.Is.TypeOfとNUnit.Framework.Is.InstanceOfで挙動が異なることについて書きたいと思います。 private abstract class HogeBase { } private class Hoge : HogeBase { } [Test] public void SampleTestSimplePasses() { Hoge …

【Unity】Object.FindObjectsOfTypeを高速化したObject.FindObjectsByTypeを用いてシーン中に存在する指定された型のオブジェクトを全て列挙する

はじめに 今回はObject.FindObjectsByTypeを紹介したいと思います。docs.unity3d.com はじめに 対応バージョン 概要 利用例 参考 対応バージョン Unity 2020.3.4 or later Unity 2021.3.18 or later Unity 2022.2.5 or later 概要 Object.FindObjectsByType…

【Unity】gree/unity-webviewを用いてUnityでWebViewを実装する

はじめに 今回はgree/unity-webviewというgreeがOSSとして公開しているWebViewをUnityアプリ上で表示するプラグインを紹介します。 unity-webview is a plugin for Unity 5 that overlays WebView components on Unity view. // DeepL翻訳 unity-webviewはUn…

【Unity】Debug.Logはもう古い!? Unity公式のLoggingパッケージ「Unity Logging」の使い方まとめ

はじめに これはUnity Advent Calendar 2023の15日目の記事です。 qiita.com この記事ではUnity公式のLoggingパッケージであるUnity Loggingを紹介したいと思います。 はじめに 概要 導入 環境 基本的な使い方 LogLevel ログ出力 Default Configure Custom C…

【C#】インクリメントを筆頭にした値の増減をInterlockedを用いてマルチスレッドに対応する

C#

はじめに 実はマルチスレッドでは値のインクリメントは正しく動作しない可能性があります。 // 正しく動作しない再現 const int Count = 100; var tks = new Task[Count]; var semaphore = new SemaphoreSlim(0, Count); var value = 0; // SemaphoreSlimを…

【Unity】ContentSizeFitterとLayoutGroupを利用してScrollViewの縦(横)スクロールを実装する

はじめに 今回は以下のGifのような縦(VerticalとHorizontalを入れ替えれば横)スクロールのScroll Viewの実装してみようという記事になります。 実際に動作させている様子 やり方 Hierarchy上で右クリックをし、UI > Scroll Viewを選択します。 Scroll Viewを…

【雑記】技術ブログに急にポエムを投稿してしまうような、生き恥を晒せる大人になりたい

創作活動と羞恥心は常に隣り合わせだと思う はじめに 最後に技術系以外の記事をこのブログに投稿したのはいつか、もはや自分でも覚えていません。かなり形骸化してしまっていますが、このブログは一応雑記ブログという位置付けだったりします。話は変わりま…

【Unity】TypeCacheを用いて"特定の属性でマークされている型やメソッド" や "特定のクラスやインターフェイスから派生する型"に素早くアクセスする

はじめに 今回はTypeCacheを用いて"特定の属性でマークされた型の一覧"や”特定のクラスやインターフェースから派生する型"をリフレクションよりも高速に取得する方法について紹介したいと思います。docs.unity3d.com はじめに 概要 使い方 TypeCache.GetFiel…