yotiky Tech Blog

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

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

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

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

Visual Studio Code - 拡張機能「Text Tables」

概要 Markdownのテーブル作成を少し便利にしてくれる拡張機能。行や列の入れ替えが簡単にできる。 marketplace.visualstudio.com 目次 概要 目次 機能 コマンド Table Mode 補足 機能 コマンド コマンドパレットの呼び出し Windows : Ctrl + Shift + P Mac :…

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

C# - 管理者権限でコマンドプロンプトを実行する

Verb に RunAs を設定して、UseShellExecute を true にする。 Hidden が設定されている時に、WaitForExit で待機すると処理が終了しない可能性があるので注意。 public static class Cmd { public static void CreateSymbolicLink(string src, string dest)…

LINQPad - LINQPad 5 で使われる .NET Framework のバージョンを確認する

LINQPadはインストールされている最新 .NET Framework 4.xを対象としている。 以下のフォーラムで最新のバージョンが何であるか確認する linq ファイルが共有されている。 forum.linqpad.net 以下コードの抜粋。 void Main() { GetFWVersion().Dump(); } sta…

C# - シンボリックリンクを操作する(.NET 5以前)

TL;DR .NET 6 でDirectoryクラスにCreateSymbolikLinkメソッドが追加されたが、5以前では使えないため Win32API を使って操作する。 注意する点は実行に管理者権限が必要なため、Unity などから利用するのは難しいかもしれない。 .NET 6 以降は以下を参照。 …

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を維持でき…

C# - シンボリックリンクを操作する

TL;DR .NET 6 でDirectoryクラスにCreateSymbolikLinkメソッドが追加されたため、6以降ではバッチやProcessを使わなくても C# で直接シンボリックリンクを作成できるようになりました。 この記事はディレクトリを対象としていますが、ファイルを対象としたFi…

Windows 11 - ショートカットキーでアプリを別の仮想デスクトップに移動する

目次 目次 TL;DR 仮想デスクトップ AutoHotKeyの導入 スクリプトファイル TL;DR Windows 10 で使用していた MoveToDesktop が Windows 11 では使用できない AutoHotKey を使用して同等の機能を導入する 導入すると現在のウィンドウを [Win + Alt + → or ←] …

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 基本的な手順は公式や以下…

Magic Leap 2 - 既存のMRTK3を使ったプロジェクトでMLSDKからOpenXRに移行する

目次 目次 導入 環境 手順 補足 導入 MagicLeap2のMRTK3でOpenXRに対応したとのこと。 MRTK3 for ML2 の OpenXR 対応に関してMRTK3 を使った ML2 アプリ開発が、OpenXR SDK ベースで可能になりました。新しいプロファイルを使ったものとなるので、README に…

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 手順 補足 …

CAGC 2024資料一覧

OP Opening Keynote Opening Keynote【CAGC2024】 - Speaker Deck ENGINEER A 『呪術廻戦ファントムパレード』ストーリー制作を支えるグラフィックシステム 『呪術廻戦 ファントムパレード』ストーリー制作を支えるグラフィックシステム【CAGC2024】 - Speak…

ピックアップ記事

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

開発者としての3つの価値観「What-With-How」

目次 目次 開発者が重視する3つ価値観「WWH」 なぜこの話するか 「How」だけが持つ目的 「How」の重要性 「How」の表現しづらさ 「プライベートで勉強する」の話 おわりに 開発者が重視する3つ価値観「WWH」 「WWH」はそれぞれ、なにを (What)、なにで (With…

Azure DevOps で「schannel: failed to receive handshake, SSL/TLS connection failed」が出続ける場合の対処 ~Killer Prioritization Engine と言う名の必殺仕事人~

TL;DR 「Killer Intelligence Center」がインストールされているDellのPCを使っている人が、 GitHubには接続できるが、Azure DevOpsに接続できなくなった場合の対処方法。 他に、Microsoft系のサイトに繋がらなかったり、読み込みが遅かったり、Teamsで画像…

xUnit.net - 利用可能なツール

目次 目次 環境 xUnitTestCodeSnippets Chainning Assertion Xunit.SkippableFact XMLUnit 環境 Visual Studio 2022 xunit 2.4.2 xUnitTestCodeSnippets ショートカットテキストを入力して、Tabキーを2回入力するとコードのテンプレートが挿入される。 よく…

Visual Studio - 外部ツールをメニューに追加する

目次 目次 環境 メニューに追加する ツールバーに追加する 環境 Visual Studio 2022 メニューに追加する ツール > 外部ツール を開く。 追加ボタンをクリックして追加したいツールを指定する。 今回は、WinMergeを追加する。 メニューに追加される。 今回は…