yotiky Tech Blog

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

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

Unity - UniTask の Channel で生産者/消費者パターンを利用する

System.Threading.Channels の記事を拝見し、Unity では UniTask に Channel があると教えてもらったので試してみました。 非同期キューイングな処理を使いたいシーンはよくあるので、知っておくと便利です。 qiita.com System.Threading.Channels を導入す…

.NET - Ipc を使ったプロセス間通信

Windows オペレーティング システムのプロセス間通信 (IPC) を使う場合、System.Runtime.Remoting.Channels.Ipc 名前空間 を利用します。 ただし、適用対象が .NET Framework のみ (現在 2.0~4.8) であり、.NET Core や Unity などでは使えないため、参考リ…

.NET - NamedPipe(名前付きパイプ)を使ったプロセス間通信

今回は名前付きパイプの実装例です。 サンプルは1つ目の Console アプリで入力した文字列を、2つ目の Console アプリ、WPF アプリ、Unity でそれぞれ読み取って表示するものになります。 パイプはサーバー側で同じパイプ名を共有するサーバーインスタンスの…

Unity - UnityをUWPでホストする(Unity as a Library)

Unity 2019.3以降、「Unity as a Library」というAndroidやiOSのネイティブアプリに、Unityで作成したアプリをライブラリとして埋め込む機能が提供されています。 この中にはWindowsアプリケーションも含まれています。Windows では以下の3つの方法が紹介さ…

.NET - MemoryMappedFile を使ったプロセス間通信 (MessagePack for C# 編)

前回の記事で MemoryMappedFile を使ったプロセス間通信の基本的な使い方を紹介しました。今回は MessagePack for C# を使ってシリアライズしたデータのやり取りについてです。 MessagePack for C# の使い方についてはこちらの記事も参考にしてみてください…

.NET - MemoryMappedFile を使ったプロセス間通信

別々のプロセスで起動したアプリケーションやライブラリで相互に通信する方法のサンプルコードです。今回は共有メモリ、MemoryMappedFile を使います。 .NET Framework 4.0 以降に導入された技術のようです。 今回のサンプルは1つ目の Console アプリで入力…

Unity - マウスドラッグで対象を中心にカメラを回転させる(三人称視点)

目次 目次 オブジェクトを中心にカメラを回転させる 動くオブジェクトに追従する 回転可能な角度を制限する オブジェクトを中心にカメラを回転させる 対象のGameObjectを中心にカメラをマウスドラッグで回転(三人称視点)させるサンプルスクリプト。 public…

Unity - マウスドラッグでカメラを回転させる(一人称視点)

カメラをマウスドラッグで回転(一人称視点)させるサンプルスクリプト。 public class CameraRotator1stPersonPov : MonoBehaviour { public Vector2 rotationSpeed = new Vector2(0.1f, 0.1f); public bool reverse; private Camera mainCamera; private V…

Unity - マウスドラッグでオブジェクトを回転させる

対象のオブジェクトをドラッグで回転させるサンプルスクリプト。 public class ObjectRotator : MonoBehaviour { public GameObject targetObject; public Vector2 rotationSpeed = new Vector2(0.1f, 0.2f); public bool reverse; public float zoomSpeed =…

Unity - マウスホイールでズームイン/ズームアウトする

対象のオブジェクトをマウスホイールでズームインしたりズームアウトするサンプルスクリプト。 カメラを移動する場合。 public class Zoomer: MonoBehaviour { public float zoomSpeed = 1; private Camera mainCamera; void Start() { mainCamera = Camera.…

Unity - キー操作でオブジェクトを移動する

アタッチした GameObject をキーボードの「WSAD」のキーで移動するサンプルスクリプト。 上下移動と上下左右に回転できるように修正。(2021/12/02) public class KeyMover : MonoBehaviour { public float moveSpeed = 1; public float rotateSpeed = 35; …

Windows 10 でフォントや文字コードを調べる

Windows に入っているフォントは「Character map」というツールで確認できます。日本語だと「文字コード表」。 HoloLens2 のフォントについては以下の記事も参考にしてみてください。 yotiky.hatenablog.com 目次 目次 起動方法 文字コード表 起動方法 スタ…

「ユニティちゃん」を利用する場合のライセンスの取り扱い

ガイドラインで概要を把握しましょう。最下部まで行くとそのままダウンロードできます。 unity-chan.com HPでの表示例を含めたライセンス表記の説明はこちら。 unity-chan.com お問い合わせに対する回答集であるFAQはわかりやすいので目を通すと良いでしょう…

Unity WebGL コンテンツをローカル実行する

Unity で WebGL ビルドした html ファイルを Chrome で開こうとすると、次のエラーメッセージが表示されます。 It seems your browser does not support running Unity WebGL content from file:// urls. Please upload it to an http server, or try a diff…

HoloLens2 の Windows リリース

Windows as a service リリース状況 Ring Channel HoloLens まとめ Windows as a service Windows は、Windows 10 でそれより前の数年ごとに新しいバージョンをリリースする方針から、 Windows をサービスとして展開する方針に変更になりました。 用語の定義…

HoloLens2 の日本語フォント

HoloLens でアプリ開発を始めると MRTK を導入することが多いと思いますが、そのままでは日本語が使えないケースにすぐ行き着きます。 MRTK のフォントについて説明した後、Windows と HoloLens におけるフォントについて紹介します。 TL;DR 確認環境 MRTK …

HoloLens2 でアプリから Calibration を起動する

検証環境 Unity:2019.4.2f1 VisualStudio:2019 Device:HoloLens2 コード コードはこちらで回答されていたものです。 using System; が必要ですので忘れないように。 public void LaunchEyeTracking() { #if WINDOWS_UWP UnityEngine.WSA.Application.Invo…

.gitignore ファイル のテンプレートを取得する

.gitignore ファイル のテンプレートを取得する方法を3つ紹介します。 1つは .NET 専用ですが。 github gibo dotnet github github Webページでリポジトリを作成する際にテンプレートから選択して追加することができます。こちらはリポジトリのルートのみに…

Azure Functions プロジェクトの .gitignore ファイル

github.com

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

目次 目次 TL;DR 仮想デスクトップ MoveToDesktop 導入 設定 自動起動 TL;DR MoveToDesktop を導入すると、現在のウィンドウを [Win + Alt + → or ←] で左右の仮想デスクトップに移動できる Windows 11対応版 yotiky.hatenablog.com 仮想デスクトップ 仮想デ…

Unity (HoloLens) - MessagePack for C# の基本的な使い方

Unity (HoloLens) で使用するための MessagePack for C# のサンプルコード集です。 目次 目次 開発環境 導入 サンプル 基本 デバッグ向けの便利なメソッド 属性 インターフェイス Stream etc 実行 Generate Register 参考 開発環境 Unity : 2019.3.15f.1 Scr…

Unity (HoloLens) - Json シリアライザの基本的な使い方

Unity (HoloLens) で Json をパースするライブラリのサンプルコード集です。 目次 目次 概要 対象クラス 開発環境 導入 JsonUtility Json.NET (Newtonsoft.Json) Utf8Json サンプル JsonUtility Json.NET (Newtonsoft.Json) Utf8Json デプロイ Utf8Json OnPr…

Unity ビルドの前後に処理を実行する

ビルド前処理は IPreprocessBuildWithReport 、ビルド後処理は IPostprocessBuildWithReport を実装する。 作成したファイルを Editor フォルダに入れる。 public class BuildProcessor : IPreprocessBuildWithReport, IPostprocessBuildWithReport { // 実…

HoloLens へアプリを配置する際に「DEP0600」のエラーが出て失敗する場合の対処法

問題 Visual Studio から HoloLens へアプリを配置しようとした際に、下記のエラーが出て失敗してしまう。 DEP0600: 配置が失敗しました。新しい配置パイプラインを通して配置できませんでした。 詳細なエラーは次のようにDeployFilesAsyncsでタイムアウトが…

Unity (HoloLens) - Httpクライアント の基本的な使い方

Unity (HoloLens) で通信するために使用できる Httpクライアントのサンプルコード集です。 GETとPOSTそれぞれで、コルーチン、UniRx、async/await(TaskとUniTask)などを織り交ぜながら例を書いています。 目次 目次 TL;DR 概要 対象クラス 開発環境 サンプ…

HoloLens プロジェクトの .gitignore ファイル

github.com

Unity と C# のバージョン

対応表 Unity Scripting Runtime API Compability Level C# Version Doc 2017.1 .NET 3.5 / .NET 4.6 .NET 2.0 / .NET 4.6 4 / 6 platform毎 2017.2 .NET 3.5 / .NET 4.6 .NET 2.0 / .NET 4.6 4 / 6 platform毎 2017.3 .NET 3.5 / .NET 4.6 .NET 2.0 / .NET …

HoloLens2 で AppPackage のバージョン番号を取得する

検証環境 Unity:2019.2.7f2 VisualStudio:2019 Device:HoloLens2 コード UnityEngine.Application.version で取れるのは、PlayerSettings の Version である。 一方、HoloLens のアプリケーションのバージョンはこれとは別で、Unity ビルドで出力したプロ…

HoloLens で使用する #define ディレクティブ

TL;DR HoloLens 実機向けにUWPのAPIを使って実装するなら WINDOWS_UWP マルチデバイスな環境で、Unityで使えるUWPのAPIを使うなら UNITY_WSA プラットフォーム依存コンパイル 検証環境 Windows 10 Unity 2019.2.7f.2 プラットフォーム : UWP Script Backend …

HoloLens2 の初期セットアップ

購入直後、もしくは設定から初期化、もしくはリカバリーツールによる復旧などの状態 Windows Update を手動で元に戻す方法はこちらに。 OSのリカバリでおよそ50min程度かかります。 HoloLens2 のセットアップ(チュートリアル) 言語と地域 視線調整 ネット…