はなちるのマイノート

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

Unity

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

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

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

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

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

【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等を確認している様…

【Unity】Unity Package Manager(UPM)が認識する自作Packageを作成し、git経由でインストールできるまで整える

はじめに 今回は自作パッケージを作成しPackageManagerのAdd package from git URLからインストールできるようにする手法について紹介したいと思います。 実際にインストールしている様子 はじめに カスタムパッケージの作成 ファイル・フォルダを生成する …

【Rider】InlineErrorという拡張機能を入れて警告やエラーメッセージをコードの右側に表示させる(常に表示されるので便利)

はじめに 今回はInlineErrorというRiderの拡張機能について紹介したいと思います。 実装に動作させている様子plugins.jetbrains.com はじめに 概要 インストール手順 概要 InlineErrorというRider拡張機能を利用することで、警告やエラーのメッセージをコー…

【Rider】nullになることを示す[CanBeNull]・ならないことを示す[NotNull] と 値解析モードによる挙動の違いについて

はじめに 今回は[CanBeNull]と[NotNull]、またそれらに対する挙動を設定できる値解析モードについて取り上げたいと思います。pleiades.io // 値解析モードによる挙動の違いについてのサンプル var sample = new Sample(canBeNullObj: null, notNullObj: null…

【Unity】コマンドラインからバッチモードでstaticメソッドを実行する方法

はじめに 今回はコマンドラインからUnityを操作する方法について紹介したいと思います。 コマンドラインから実行している様子docs.unity3d.com はじめに 概要 コマンドについて Unityのパスを指定 -quit -batchmode -nographics -projectPath -executeMethod…