はなちるのマイノート

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

Unity

【Unity】gree/unity-webviewでバウンス(スクロール領域の境界に達したときに範囲外が少し表示される奴)を無効化する

はじめに 今回はgree/unity-webviewでバウンススクロールを無効化する方法を紹介したいと思います。github.com techvisor.jpちなみに基本的な使い方は前に記事を書いたので、気になる方はチェックしてみてください。 www.hanachiru-blog.com はじめに バウン…

【Unity】gree/unity-webviewのSetMarginのrelativeは何を意味するのか(Screen.SetResolutionをしたときに挙動が変わる)

はじめに 今回はgree/unity-webviweのWebViewObject.SetMarginsの引数にあるrelativeについて書きたいと思います。 public void SetMargins(int left, int top, int right, int bottom, bool relative = false) github.com // 使用例 private void Start() {…

【Unity】UniTask.WhenAllは省略できて、配列かIEnumerableかTupleをawaitしてあげるだけでも同じ意味になる

はじめに UniTask.WhenAllを利用することで全てのTaskが終了するまで待つことができます。 // 全てのTaskが終わるまで待つ await UniTask.WhenAll(UniTask.Delay(1), UniTask.Delay(2), UniTask.Delay(3)); 実はこれはいくつか書き方があるので、それを紹介…

【Unity】Unity2023.2からUI Toolkitの「UxmlElementとUxmlAttribute」を使用することでCustom UI Elementsを実装する際に「UxmlFactoryとUxmlTraits」が必要がなくなった

はじめに 今回はUI ToolkitのUxmlElementとUxmlAttributeについて取り上げたいと思います。docs.unity3d.com docs.unity3d.com昔Unity2023.2のTech Stream紹介ブログにて、Custom UI Elementsの実装を簡略化した改善が紹介されていました。 Custom UI Elemen…

【Unity】Build Report Inspectorを用いてビルドプロセスに関する情報をインスペクター上に分かりやすく表示する

はじめに 今回はUnity公式パッケージであるBuild Report Inspectorについて紹介したいと思います。docs.unity3d.com 利用している様子 はじめに 概要 インストール方法 使い方 Build Report Inspectorの見方 Build Steps Source assets Output files Strippi…

【Unity】Unity SearchでApplication.dataPathなどのpublicなStatic APIメソッドとプロパティの結果をお手軽に調べる方法(api:)

はじめに 今回はUnity Searchを利用して簡単にApplication.dataPathなどのpublicなStatic APIメソッドやプロパティを実行する方法を紹介したいと思います。docs.unity3d.com はじめに やり方 自前のStaticメソッドの実行 参考 やり方 Unity Editor上でComman…

【Unity】Debug.LogなどのConsoleへのログ出力にハイパーリンクを埋め込む方法

はじめに 今回はDebug.LogなどのConsoleへのログ出力にハイパーリンクを埋め込む方法を紹介したいと思います。 ハイパーリンクを埋め込んでいる様子 はじめに やり方 外部サイト Assets以下のファイル 該当コード 参考 やり方 外部サイト // 外部サイトを開…

【Unity】「Diagnostic switches are active and may impact performance or degrade your user experience. Switches can be configured through the Diagnostics section in the Preferences window.」というエラーの対処法

はじめに Unityエディタを開いていたら以下のようなエラーが出てきました。 Diagnostic switches are active and may impact performance or degrade your user experience. Switches can be configured through the Diagnostics section in the Preferences…

【Unity】UnityEditor上でプロジェクト直下やPackagesやUserSettingsやLogsといったパスをPath.Combineで取得する(System.Environment.CurrentDirectoryを使ってはダメ)

はじめに 今回はUnity Editor上でプロジェクト直下・Packages・UserSettings・Logsといったパスの取得方法を紹介したいと思います。 利用している様子 はじめに やり方 Application.dataPathについて やり方 以下はUnity Editor上での取得方法です。 // コメ…

【Unity】GameCIを用いてUnityのCI 環境をGitHub Actions上に構築し、Test Frameworkを実行&結果をアップロードする方法

はじめに 今回はGameCIを用いてUnityのCI 環境をGitHub Actions上に構築し、Test Frameworkを実行&結果をアップロードする方法を紹介したいと思います。github.com具体的には以下の2つを紹介します。 GameCIを利用するための設定方法 TestFrameworkをGitHub …

【Unity】Unity公式パッケージ「Code Coverage」を利用してTest Frameworkのコードカバレッジを計測する

はじめに 今回はUnity公式パッケージであるCode Coverageを利用してTest Frameworkで実行したテストのコードカバレッジを計測する方法を紹介したいと思います。docs.unity3d.com 実際に生成したレポート はじめに Code Coverageとは 概要 環境 インストール…

【Unity】ランタイムでEnvironment.CurrentDirectory(作業ディレクトリ)を変更できるが終了前にProject直下に戻さないとダメ

はじめに System.Environment.CurrentDirectoryをランタイムで変更させられることに気づきました。そのことについて書きたいと思います。 変更している様子 はじめに 説明 説明 public class Sample : MonoBehaviour { private void Start() { // MacのUnity…

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

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