MRが楽しい

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

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…

Unityでスクリプトからメニュー項目を実行する

本日は Unity の小ネタ枠です。 Unityでスクリプトからメニュー項目を実行する方法です。 EditorApplication.ExecuteMenuItem Unityでスクリプトからメニュー項目を実行するにはEditorApplication.ExecuteMenuItem関数を利用します。 引数にメニューのパスを…

Unityで自作のメニュー項目を追加する

本日は Unity の小ネタ枠です。 Unityで自作のメニュー項目を追加する方法です。 MenuItem Unityで自作のメニュー項目を追加するにはMenuItemを属性として指定します。 MenuItemは静的関数(static)のみが利用可能です。 docs.unity3d.com [MenuItem("MenuIte…

Unityエディター上で3Dモデルのワイヤーフレームを確認する

本日はUnityの小ネタ枠です。 Unityエディター上で3Dモデルのワイヤーフレームを確認する方法についてです。 3Dモデルのワイヤーフレームを表示する Unityエディター上で3Dモデルのワイヤーフレームを確認するには[Scene]ビューの[Shading Mode]を変更します…

Unityで3Dモデルのメッシュトポロジーを変更する

本日はUnityの小ネタ枠です。 Unityで3Dモデルのメッシュトポロジーを変更する方法についてです。 MeshTopologyを変更する MeshFilterからモデルのMeshTopologyを変更することで3Dモデルを面やワイヤーフレーム、点群で表示にすることができます。 MeshTopol…

VisualStudioCodeでファイルの差分を確認する その2

本日は VisualStudioCode の小ネタ枠です。 VisualStudioCodeでファイルの差分を確認する方法です。 本記事ではファイル同士の差分以外の比較を試します。 前回記事 以下の前回記事の続きです。 bluebirdofoz.hatenablog.com 保存前との差分を確認する(Compa…

VisualStudioCodeでファイルの差分を確認する

本日は VisualStudioCode の小ネタ枠です。 VisualStudioCodeでファイルの差分を確認する方法です。 VisualStudioCodeでファイルの差分を確認する VisualStudioCodeでファイルの差分を確認するには比較したい2つのファイルを開きます。 メニューから[View -…

VisualStudioCodeを日本語化する

本日は VisualStudioCode の小ネタ枠です。 VisualStudioCode の表示言語を日本語に変更する手順を記事にします。 VisualStudioCodeを日本語化する 初めに表示言語を追加する拡張機能をインストールします。 VisualStudioCodeを起動して[Extensions]タブを開…

MacPCのSafariでzip等のアーカイブファイルを自動で展開しないようにする

本日はSafariの小ネタ枠です。 MacPCのSafariでzip等のアーカイブファイルを自動で展開しないようにする方法です。 Safariでzip等のアーカイブファイルが展開される Safari使用時にアーカイブファイルをダウンロードすると、ダウンロードフォルダに展開され…

Riderを使ってUnityエディターで動作中のソースコードを分析する

本日はRiderのの小ネタ枠です。 Riderを使ってUnityエディターで動作中のソースコードを分析する方法です。 Riderの環境構築 JetBrains Rider の環境構築手順は以下を参照ください。 bluebirdofoz.hatenablog.com デバッグモードを有効にする Riderでソース…