MRが楽しい

MRやVRについて学習したことを書き残す

2024-02-01から1ヶ月間の記事一覧

RiderでGithub Copilotがエラー「your editors Copilot extension is out of date」で動作しない場合の対処

本日は Rider の小ネタ枠です。 RiderでGithub Copilotがエラー「your editors Copilot extension is out of date」で動作しない場合の対処についてです。 JetBrains RiderでのGithub Copilotの利用手順 JetBrains RiderでのGithub Copilotの利用手順配下の…

UniRxでPublishを使ってColdの性質のObservableをHotの性質のObservableに変換する その2(PublishLastを使って最後の通知を保存する)

本日はUniRxの小ネタ枠です。 UniRxでPublishを使ってColdの性質のObservableをHotの性質のObservableに変換してみます。 今回はPublishLastオペレータを使って最後の通知を保存する動作を確認する 前回記事 Publishオペレータを使った場合のHotとColdのObse…

UniRxでPublishを使ってColdの性質のObservableをHotの性質のObservableに変換する

本日はUniRxの小ネタ枠です。 UniRxでPublishを使ってColdの性質のObservableをHotの性質のObservableに変換してみます。 Hot/Cold UniRxにおけるHotとColdのObservableの違いについては以下の記事を参照ください。 bluebirdofoz.hatenablog.com Publishオペ…

UniRxでHotとColdの性質のObservableの動作を比較する

本日はUniRxの小ネタ枠です。 UniRxでHotとColdの性質のObservableの動作を比較してみます。 Hot/Cold UniRxのObservableにはHotとColdの2種類の性質があります。 ・Cold:購読されるまで通知が行われない。複数の購読が行われた場合は別々のストリームに分…

MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う その19(仮想オブジェクトを現実の部屋に干渉させる)

本日はMetaQuest3の技術調査枠です。 MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。 本記事は仮想オブジェクトを現実の部屋に干渉させるを行う手順です。 前提条件 本記事では以下の記事で作成したパススルーを有効にし…

MetaQuest3から設定したプレイエリアを削除する

本日はMetaQuest3の小ネタ枠です。 MetaQuest3から設定したプレイエリアを削除する手順を記事にします。 プレイエリア Quest3では静止モードまたは歩行モードのプレイエリアを設定可能でこれらは境界線と呼ばれます。 境界線とは別にスペースの設定を行うと…

QuestのMR機能を体験できるサンプルアプリ「Discover」を試す

本日はQuest3の小ネタ枠です。 QuestのMR機能を体験できるサンプルアプリ「Discover」を試してみました。 Discover DiscoverはQuestのMR機能を利用した様々な体験を提供するアプリケーションです。 Questのストアからアプリをインストールできるほか、Quest…

Unityでクリーンビルドを実行する

本日はUnityの小ネタ枠です。 Unityでクリーンビルドを実行する方法についてです。 クリーンビルド Unityはビルドの高速化のため、ビルド実行時には前回のビルドからの変更点のみ再ビルドを行うインクリメンタルビルドパイプラインを利用します。 何らかの理…

DateTimeOffset型をDateTime型に変換する

本日は.NETの小ネタ枠です。 DateTimeOffset型をDateTime型に変換する方法についてです。 DateTime型とDateTimeOffset型 DateTime型は特定の時刻と世界協定時刻(UTC)またはローカル(Local)かの種別情報を保持します。 一方でDateTimeOffset型は特定のUTC時刻…

UniRxのFromEventを使ってイベントをObservableに変換する

本日はUniRxの小ネタ枠です。 UniRxのFromEventを使ってイベントをObservableに変換する方法です。 前提条件 UniRxの環境構築手順は以下の記事を参照ください。 bluebirdofoz.hatenablog.com FromEvent FromEventはイベントをObservableに変換します。 Obser…

Unityでスクリプトからシェーダのキーワード定義を変更して処理を切り替える その4(シェーダのキーワードを確認する)

本日はUnityの小ネタ枠です。 Unityでスクリプトからシェーダのキーワード定義を変更して処理を切り替える方法です。 今回はシェーダに設定しているキーワードを確認する方法を試します。 前回記事 以下の記事で作成したサンプルシェーダを基にサンプルを作…

Unityでスクリプトからシェーダのキーワード定義を変更して処理を切り替える その3(複数のシェーダのキーワードを組み合わせる)

本日はUnityの小ネタ枠です。 Unityでスクリプトからシェーダのキーワード定義を変更して処理を切り替える方法です。 今回はシェーダの処理をマテリアルごとに切り替えるか、シェーダ全体を切り替える方法を試します。 シェーダバリアント シェーダーバリア…

Quest3でオクルージョンの種類をアプリ内で切り替える

本日はQuest3の小ネタ枠です。 Quest3でオクルージョンの種類をアプリ内で切り替える実装を試したので記事にします。 Quest3でDepthAPIを使ったオクルージョンを実装する Quest3でDepthAPIを使ったオクルージョンを実装する手順は過去の記事を参照ください。…

Unityでスクリプトからシェーダのキーワード定義を変更して処理を切り替える その2(複数のシェーダのキーワードを組み合わせる)

本日はUnityの小ネタ枠です。 Unityでスクリプトからシェーダのキーワード定義を変更して処理を切り替える方法です。 今回は複数のシェーダのキーワードを組み合わせるケースについてです。 複数のキーワードを組み合わせる 複数の multi_compile の定義を行…

Unityでスクリプトからシェーダのキーワード定義を変更して処理を切り替える

本日はUnityの小ネタ枠です。 Unityでスクリプトからシェーダのキーワード定義を変更して処理を切り替える方法です。 シェーダバリアント シェーダーバリアントはシェーダーコードに条件付き動作を導入する方法の 1 つです シェーダー内にキーワードを定義す…

Questアプリでジャイロセンサの値を取得……できなかった

本日はMetaQuest3の小ネタ枠です。 Questアプリでジャイロセンサの値を取得しようとして失敗したのでその記録記事です。 ジャイロセンサの情報を取得する Unityでデバイスのジャイロセンサの情報を取得すには Input.gyro を参照します。 docs.unity3d.com do…

Unityでビルドが完了したタイミングでスクリプト処理を実行する

本日はUnityの小ネタ枠です。 Unityでビルドが完了したタイミングでスクリプト処理を実行する方法についてです。 PostProcessBuildAttribute ビルドが完了したタイミングでスクリプト処理を実行するには PostProcessBuildAttribute 属性を利用します。 この…

JetBrainsの認定エキスパートを利用する

本日はRiderの小ネタ枠です。 JetBrainsの認定エキスパートを利用してAll Products Packのライセンスを取得する手順です。 JetBrainsの認定エキスパート JetBrainsの認定エキスパートは以下の活動者にAll Products Pack の無料サブスクリプションを提供する…

Questアプリ内でブラウザの閉じ開きを検知する

本日はMetaQuest3の小ネタ枠です。 Questアプリ内でブラウザの閉じ開きを検知する方法です。 Questアプリ内でブラウザを開く Questアプリ内でブラウザを開く方法については以下の記事を参照ください。 bluebirdofoz.hatenablog.com ブラウザの閉じ開きを検知…

Questアプリでメニューが開かれた状態を検知する

本日はMetaQuest3の小ネタ枠です。 Questアプリでメニューが開かれた状態を検知する方法です。 メニューが開かれた状態 没入型のQuestアプリではコントローラの[Meta]ボタンを押すと、メニュー画面が開きます。 このとき没入中のQuestアプリは一時停止状態と…

MetaQuest3のミラーリングをWebブラウザで行う

本日はMetaQuest3の小ネタ枠です。 MetaQuest3のミラーリングをWebブラウザで行う手順です。 MetaQuestのミラーリング MetaQuestのミラーリングはQuestの画面をワイヤレスでスマホやPCに表示させる機能です。 PC側でWebブラウザを使ってQuestの画面をミラー…

Unityで自作のメニュー項目を追加する その3(コンポーネントにメニューを追加する)

本日は Unity の小ネタ枠です。 Unityでスクリプトからコンポーネントにメニュー項目を実行する方法です。 MenuItem Unityで自作のメニュー項目を追加するにはMenuItemを属性として指定します。 MenuItemは静的関数(static)のみが利用可能です。 docs.unity3…

Unityで自作のメニュー項目を追加する その2(プロジェクトウィンドウにメニューを追加する)

本日は Unity の小ネタ枠です。 Unityでスクリプトからプロジェクトウィンドウにメニュー項目を実行する方法です。 MenuItem Unityで自作のメニュー項目を追加するにはMenuItemを属性として指定します。 MenuItemは静的関数(static)のみが利用可能です。 doc…

MetaQuest3でOpenIDConnectの認可コードフローを試す

本日はMetaQuest3の小ネタ枠です。 MetaQuest3でOpenIDConnectの認可コードフローを行う方法を記事にします。 前提条件 本記事のサンプルでの認証先として以下の記事で作成した環境を利用します。 事前に利用するアプリのアプリケーションIDとディレクトリID…

UnityでHttpUtilityなど一部の.NETの関数が利用できない場合の対処

本日はUnityの小ネタ枠です。 UnityでHttpUtilityなど一部の.NETの関数が利用できない場合の対処についてです。 HttpUtilityなど一部の.NETの関数が利用できない 以下のようなエラーが発生し、HttpUtilityなど一部の.NETの関数が参照できない問題が発生しま…

MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う その18(スキームURLからパラメータを受け取る)

本日はMetaQuest3の技術調査枠です。 MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。 本記事はスキームURLからパラメータを受け取る手順です。 前提条件 本記事では以下の記事で作成したUnityプロジェクトを基に設定を行…

MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う その17(スキームURIを使って自作アプリを開く)

本日はMetaQuest3の技術調査枠です。 MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。 本記事はスキームURIを使って自作アプリを開く手順です。 前提条件 本記事では以下の記事で作成したUnityプロジェクトを基に設定を行…

MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う その16(Quest3アプリ内からウェブブラウザを開く)

本日はMetaQuest3の技術調査枠です。 MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。 本記事はQuest3アプリ内からウェブブラウザを開く手順です。 前提条件 本記事では以下の記事で作成したUnity プロジェクトを基に設定…

シーンビューのカメラ設定をスクリプトから初期化する

本日はUnityの小ネタ枠です。 シーンビューのカメラ設定をスクリプトから初期化する方法についてです。 SceneView.CameraSettings スクリプトからシーンビューのカメラ設定を変更するには SceneView.CameraSettings を利用します。 任意の変更内容のSceneVie…