はなちるのマイノート

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

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

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

【Unity】UI Toolkitの公式ドキュメントのGetting Startedをやったメモ

はじめに 今回は新しいUIシステムであるUI Toolkitについて取り上げたいと思います。 今回作るUIこの記事は以下のUI Toolkitの導入記事の自分向けの備忘録になります。見づらいですし、公式ドキュメントを見た方が正確な情報が書いてありますのであしからず…

【Unity】UI ToolkitのVisualElement.Query<T>とVisualElement.Q<T>の違いについて

はじめに UI ToolkitではVisual TreeからVisualElementを検索するためにUQueryを利用しますが、クエリメソッドとしてQとQueryがあります。今回はその違いについて取り上げたいと思います。 はじめに 概要 詳細 概要 Queryは該当する全てのVisualElementの情…

【Unity】UI ToolkitにてC#スクリプトからStylesを適応する

はじめに 今回はUI ToolkitのVisualElementに対してC#スクリプトからスタイルを適応する方法について紹介したいと思います。 はじめに やり方 VisualElement.styleを利用する Unity style sheet(USS)を追加する 参考 やり方 VisualElement.styleを利用する V…

【C#】C#12から登場したInterceptorsを利用してコンパイル時に実行するメソッドを置き換える(主にSourceGeneratorと組み合わせる)

C#

はじめに C#12から登場したInterceptorsというコンパイル時に実行するメソッドを置き換えられる機能について紹介したいと思います。github.comただしまだ実験的な機能なので、変更される可能性もありますし情報もまだそこまで出てきていません。注意してくだ…

【C#】System.Text.Jsonの「JsonDocumentとJsonElement」を利用して固定したSchemaがないJsonに対してデシリアライズを行う方法

C#

はじめに 今回はSystem.Text.Jsonを用いてSchemaが変わる可能性があるようなJsonをデシリアライズする方法について紹介したいと思います。www.nuget.org↓利用される場面 逆シリアル化する型がない 受信した JSON に固定スキーマがなく、含まれている内容を確…

【C#】System.Text.Jsonで直接UTF-8バイト配列にシリアライズ & UTF-8バイト配列からデシリアライズする方法

C#

はじめに 今回はSystem.Text.Jsonを利用して直接UTF-8バイト配列にシリアライズ & UTF-8バイト配列からデシリアライズする方法を紹介したいと思います。また公式ドキュメントには文字列ベースのメソッド(UTF-16)を使用するよりもUTF-8バイト配列のシリアル化…

【C#】GenericのFullNameを実際のコードに埋め込みできるよう変換する方法(T4の実行時テンプレート, Raw String Literal)

C#

はじめに 例えばRaw String Literal(もしくはT4の実行時テンプレート)を利用して、.csの生成をしようとします。 using System.Text; namespace SampleConsole { internal class Program { public static void Main() { // C#11より登場した生文字列リテラル …

【C#】dotnet-t4を用いてT4テンプレートをコマンドラインから処理する

C#

はじめに 今回はdotnet-t4について取り上げたいと思います。www.nuget.org はじめに 概要 インストール手順 .NET Core3.1のインストール dotnet-t4のインストール パスを通す 使い方 参考 概要 dotnet-t4はT4テンプレートをコマンドラインからファイル指定し…

【PowerShell, C#】MacにPowerShellをインストール, .NETの利用, VSCodeの拡張機能インストールをする方法

C#

はじめに 最近教えていただいたのですが、どうやらPowerShellは.NETの知識がそのまま使えるとの噂を聞きました。 PowerShell(パワーシェル)は、マイクロソフトが開発した拡張可能なコマンドラインインターフェイス (CLI) シェルおよびスクリプト言語である…

【Unity】UI Toolkitにて入れ子構造となっているデータをTreeViewで表現する方法(ファイルとディレクトリのような入れ子構造)

はじめに 今回はUI Toolkitにて以下の画像のような要素が入れ子になっているようなTreeViewを作成してみる記事になります。 動作させている様子↓TreeViewの公式ドキュメントの説明 docs.unity3d.comdocs.unity3d.com はじめに 概要 やり方 UXMLを記述する(UI…

【Rider】Riderで改行コード(CRLFとLFとCR)の設定方法(新規ファイル, 開いているファイル, 指定したファイル・ディレクトリ)

はじめに 今回はCRLF・LF・CRの違いとRiderでの設定方法について取り上げたいと思います。 はじめに 改行コード Riderでの設定方法 新規ファイルに対しての適応方法 現在開いているファイルに対して改行コードを変更する 指定したファイルやディレクトリ内の…

【Unity】PackageManager.Clientを利用してC#スクリプトを通してPackageManagerを操作する

はじめに 今回はPackageManagerのスクリプティングAPIについて取り上げたいと思います。docs.unity3d.com はじめに 概要 使い方 LogLevel Add AddAndRemove List Embed Remove Resolve 参考 概要 PackageManagerを操作するためにはPackageManager.Clientクラ…

【C#】浮動小数点をToString()するとCultureInfoによって出力が異なってしまう件

C#

はじめに 1.23f.ToString()のような浮動小数点のToStringを実行するとカルチャ(国/地域)によって表示が異なることに最近気がつきました。 // ja-JP Console.WriteLine(CultureInfo.CurrentCulture); // 1.23 Console.WriteLine(1.23f.ToString(CultureInfo.C…

【Unity, C#】System.Environment.GetCommandLineArgsとSystem.CommandLineを用いてコマンドライン引数にて配列を受け取る方法

はじめに 今回はUnityのコマンドライン引数にて配列を受け取る方法を紹介したいと思います。 // 「-- hoge aaa --hoge bbb --hoge ccc」もしくは「--hoge aaa bbb ccc」のようにコマンドライン引数を受け取れる $ /Applications/Unity/Hub/Editor/2022.3.8f1…

【Unity】公式パッケージ「Android Logcat」を利用してAndroidデバイスからのスタックトレースやログなどのメッセージをUnity Editorに表示する

はじめに 今回はAndroid端末からスタックトレースやログなどのメッセージをUnity Editorに表示することができる公式パッケージ「Android Logcat」を紹介したいと思います。 Android Logcatが動作している様子docs.unity3d.com はじめに 概要 環境 インストー…

【Unity】UnityアプリをAndroid実機で動作させ、Android Studioのlogcatを利用してログを確認する方法

はじめに UnityアプリをビルドしてAndroidでデバッグする際に、ログを調べたい場合もあるでしょう。そんなときにAndroid StudioのLogcatを利用することでログを確認することができます。 Logcatが動作している様子UnityEngineのDebug.Log等を確認している様…

【C#】.NET7より導入されたInt128 構造体とUInt128 構造体を用いて128ビット整数を活用する

C#

はじめに 今回は128ビット整数のInt128とUInt128について取り上げたいと思います。learn.microsoft.com learn.microsoft.com はじめに 概要 概要 128bitの整数(Int128・UInt128)が.NET7から導入されました。C#のバージョン的にはC# 11からのタイミングなはず…

【C#】C#11から登場した生文字列リテラル(Raw String Literal)を利用してT4の実行時テンプレートを脱却する

C#

はじめに 今回はC#11より登場した生文字列リテラル(Raw String Literal)を紹介したいと思います。 // サンプル public static void Main() { var name = "Hanachiru"; // C#11より登場した生文字列リテラル (T4の実行時テンプレートの移行先としてしばしば利…