yotiky Tech Blog

とあるエンジニアの備忘録

Unity

Unity - Editor 拡張のチートシート

目次 目次 検証環境 全般 リファレンス OnGUI ウィンドウ ウィンドウを表示する Show 位置やサイズの指定 ShowModal ShowModalUtility ShowUtility ShowAuxWindow ShowAsDropDown ShowPopup ShowNotification ウィンドウを閉じる 既定のウィンドウを開く UI…

Unity - 既定のウィンドウのクラス名をすべて取得する

private void Main() { var builder = new StringBuilder(); var list = GetAllEditorWindowTypes(); foreach ( var n in list.Select(x => x.ToString()).OrderBy(x => x) ) { builder.AppendLine( n ); } Debug.Log( builder.ToString() ); } private stat…

Unity - シンボリックリンクを操作するエディター拡張

機能 フォルダのみ操作可能 ルートで指定したディレクトリ配下のシンボリックリンクを検索して一覧表示 シンボリックリンクの作成と削除 ソースコードは以下に。 github.com

Unity - Editor拡張で使えるUI機能の概要 ( GUI / GUILayout / EditorGUI / EditorGUILayout)

目次 目次 環境 概要 関数一覧 GUI GUILayout EditorGUI EditorGUILayout 環境 Unity 2022.3 概要 Editor拡張で使えるUI機能はクラスが4つある GUI - Unity スクリプトリファレンス GUILayout - Unity スクリプトリファレンス EditorGUI - Unity スクリプト…

Unity - Path を操作する

目次 目次 検証環境 Path を操作する Assetsからの相対パス、絶対パス Assets を含む相対パス 検証環境 LINQPad で代替 Path を操作する yotiky.hatenablog.com Assetsからの相対パス、絶対パス void Main() { //var baseDir = Application.dataPath; var ba…

Unity - UPMのローカルパッケージ参照で特殊フォルダーを共有する

TL;DR 動的にロードされるアセットだけが含まれるフォルダー(ResourcesやStreamingAssets)を対象とした場合、AssetPostprocessorやPackage Managerのイベントが利用できる可能性がある。 条件が厳しいのはUPMにアセットを含める関係上、元のGUIDを維持でき…

Unity - ZLoggerを導入する

目次 目次 検証環境 導入 実行 参考 検証環境 Unity 2022.3.21f1 ZLogger 2.4.1 ZLogger.Unity 2.4.1 CsprojModifier 1.2.1 github.com github.com 導入 NugetForUnityをインストール NugetForUnityで以下をインストール ZLogger Project Settings > Package…

Unity - R3 を使った Pure C# のModel層プロジェクトの作成

目次 目次 概要 環境 手順 サンプル実装 参考 概要 ピュアC# の.NETプロジェクトでModel層を作成する R3 を導入してRxをシームレスに利用する Unity プロジェクトはすでに存在するものとする 環境 Unity 2022.3.21f1 R3 1.1.11 手順 新しいクラスライブラリ…

Magic Leap 2 - MRTK3 とOpenXRを使ったプロジェクト環境の構築

目次 目次 開発環境 MagicLeap 手順 開発環境 Unity 2022.3.21f1 MRTK3 Input 3.1 UX Components 3.1.1 Core Definition 3.1.1 MagicLeap2 MagicLeap Setup Tool 2.0.7 MagicLeap MRTK3 1.0.0-pre6 MagicLeap SDK 2.0.0 MagicLeap 基本的な手順は公式や以下…

Unity - View に interface を使って実装を差し替える

目次 目次 同じプロジェクトの場合 前提 実装 ゲージの実装 数値の実装 別シーン(プロジェクト)の場合 前提 実装 補足 同じプロジェクトの場合 前提 簡単なサンプルとしてHPをゲージと数値で表示する実装を切り替える。 実装 まずはinterfaceを用意する。 …

Unity - ユニティちゃんをURPで表示する

目次 目次 環境 準備 シェーダーを解消する 環境 Unity 2022.3.18f1 準備 unity-chan.com 「ユニティちゃん 3Dモデルデータ」を使う場合、UnityChan_v1.4.0.unitypackageをダウンロードして、プロジェクトにインポートする。 「ユニティちゃんSunny Side Up(…

MRTK3 を使ったHoloLens2、Meta Quest3、MagicLeap2のマルチデバイスプロジェクト環境の構築

目次 目次 開発環境 概要 コンテンツプロジェクト 手順 補足 依存関係のパッケージを追加する場合 特殊フォルダー HoloLens 手順 Quest 手順 補足 コントローラーを使う場合 ずっと出続ける「Enable Meta XR Feature Set」のダイアログ MagicLeap 手順 補足 …

ピックアップ記事

2024/4 ~ フリーランスのお仕事募集中 コラム yotiky.hatenablog.com 開発者としての3つの価値観「What-With-How」 ウォーターフォールとアジャイルの例え話 設計 yotiky.hatenablog.com Unity におけるアーキテクチャの予備知識 Unity - 設計・実装のコツ …

Unity - UnityWebRequest で「A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details.」の例外が発生する時の対処

目次 目次 環境 起こった事象 調査 原因 対処 環境 Unity 2021.3.29f1 起こった事象 LogをApplication Insightsに投げるアプリケーションで、 シーンを切り替えた時にたまに、UploadHandlerRawのコンストラクタで以下の例外が発生する。 A Native Collection…

HoloLens2 でSceneSystemのLighting Sceneを使うとライトが有効にならないバグ

目次 目次 環境 内容 現象 原因 対処法 蛇足 環境 HoloLens2 MRTK 2.8.3 Unity 2021.3.29f1 内容 現象 MRTKのSceneSystemで、Lighting Sceneを使うように設定すると、Unity Editorでは問題なく動くが、HoloLensで動かすとライトが有効にならない。 github.co…

Unity Unit Test(単体テスト)入門 - 番外編 UniRx

目次 目次 はじめに シリーズの目次 環境 サンプル Moq NSubstitute はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したもの Unityのテスト、およびDIコンテナ、モックライブラリの基本的な使い方や…

Unity Unit Test(単体テスト)入門 - NSubstitute

目次 目次 はじめに シリーズの目次 環境 NSubstitute 手順 基本的な使い方 サンプル アプリ側 with Extenject(Zenject) with VContainer 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したも…

Unity Unit Test(単体テスト)入門 - Moq

目次 目次 はじめに シリーズの目次 環境 Moq 手順 基本的な使い方 サンプル アプリ側 with Extenject(Zenject) with VContainer 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したもの Unity…

Unity Unit Test(単体テスト)入門 - VContainer

目次 目次 はじめに シリーズの目次 環境 VContainer 手順 テストでの使い方 サンプル アプリ側 テストコード 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したもの Unityのテスト、およびDI…

Unity Unit Test(単体テスト)入門 - Extenject(Zenject)

目次 目次 はじめに シリーズの目次 環境 Extenject(Zenject) 手順 テストでの使い方 サンプル アプリ側 テストコード UnitTest IntegrationTest SceneTest 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書…

Unity Unit Test(単体テスト)入門 - Unity Test Framework

目次 目次 はじめに シリーズの目次 環境 Unity Test Framework 手順 参考 補足 MEMO 参考 はじめに この一連の記事は UnityのUnity Test Frameworkを使ったテストに関して調べたメモ書きに補足を足したもの Unityのテスト、およびDIコンテナ、モックライブ…

Unity Unit Test(単体テスト)入門

目次 目次 はじめに シリーズの目次 環境 単体テスト入門 基本方針 Unity Test Framework 手順 参考 DIコンテナの導入 DIコンテナは インタフェースは Extenject(Zenject) VContainer 比較の参考 モックライブラリ導入 Moq NSubstitute サンプルプロジェクト…

HoloLens2 でアプリパッケージの作成ができないバグ

目次 目次 環境 内容 現象 原因 対処法1 対処法2 環境 HoloLens2 MRTK 2.8.3 Unity 2021.3.28f1 / 29f1 内容 現象 Unity ビルド後のVisual Studioで「アプリパッケージの作成」メニューが無効化されて実行できない。 ※Unity フォーラムのスレッド forum.unit…

MagicOnion ジェネレーターのエディタ拡張の修正覚書

Unity+.NET Core+MagicOnion v2 の環境構築ハンズオン #C# - Qiita MenuItemのエディタ拡張使わせてもらっていたがエラーが起きてるのしばらく気付かなかったので、p.Exitedの中を微修正。 if (p.ExitCode == 0) UnityEngine.Debug.Log($"{data}"); else Uni…

MagicOnion で Shared Project (共有プロジェクト)を含むプロジェクトをジェネレートする時の注意点

もくじ もくじ 現象 原因 対処 現象 複数のプロジェクトにジェネレート対象のクラスを定義しているが、1度のmocで対象にしたいプロジェクトが1個だけの場合、入力するプロジェクトがShared Projectを参照していると参照していないプロジェクトのコードもジェ…

Unity - エディタ拡張でメニューを追加した時の優先順位

目次 目次 環境 サンプル集 参考 環境 Unity 2019.4 サンプル集 MenuItem 属性の priority 引数に数字を与える。 [MenuItem("Tools/Window/Hoge", priority = 101)] private static void Hoge() { } [MenuItem("Tools/Window/Fuga", priority = 102)] privat…

Magic Leap 2 - 開発環境構築の覚書(Simulator)

目次 目次 検証環境 手順 MRTK support status Application Simulator 検証環境 ML Hub Version 2.0.10.202304072137 Magic Leap Application Simulator Module Version 3.5.0.202304102127 Magic Leap Application Simulator Runtime Version 3.5.0.2023041…

Azure Spatial Anchors の Overview

TL;DR Azure Spatial Anchors の概要をざっくり把握するための覚書 関連する技術、話題の概要 チュートリアルを突破するためのコツ 目次 TL;DR 目次 Azure Spatial Anchors(ASA) とは 保存 データ 参考 有効期限 取得 参考 正確さ 処理時間 認証と承認 価…

Unity - キーボードのWASD+QEとマウスドラッグでFPSのように動かす

アタッチした GameObject をキーボードの「WSADEQ」のキーとマウスドラッグでFPSのように動かすサンプルスクリプト。 「WASD」で前後左右、「EQ」で上下、マウスドラッグで左右回転する。 public class ObjectController : MonoBehaviour { public float mov…

Unity - Timeline リンク集

yotiky.hatenablog.com 目次 目次 公式 マニュアル スクリプトリファレンス Timeline パッケージ Blog や Unity Learning Materialsなど 入門 基礎 事例解説 機能別 PlayableDirector Playables API トラック Signal/Marker エディタ Timeline Playable Wiza…