MRが楽しい

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

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

Quest3アプリでシーンモデルが利用できないときは疑似床に切り替える

本日はMetaQuest3の小ネタ枠です。 Quest3アプリでシーンモデルが利用できないときは疑似床に切り替える方法を記事にします。 前提条件 本記事では以下の記事で作成したシーンモデルの可視化を設定したプロジェクトを基に設定を行います。 bluebirdofoz.hate…

Quest3アプリでシーンモデルの可視化をスクリプトから切り替える

本日はMetaQuest3の小ネタ枠です。 Quest3アプリでシーンモデルの可視化をスクリプトから切り替える方法を記事にします。 前提条件 本記事では以下の記事で作成したシーンモデルの可視化を設定したプロジェクトを基に設定を行います。 bluebirdofoz.hatenabl…

Unityでレイヤーマスク毎にエディター上で表示するレイヤーを指定する

本日はUnityの小ネタ枠です。 Unityでレイヤーマスク毎にエディター上で表示するレイヤーを指定する方法です。 前回記事 以下の記事で作成した3つの別レイヤーのオブジェクトがあるシーンで動作を確認します。 bluebirdofoz.hatenablog.com レイヤーマスク毎…

MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う その29(TextMeshProのシェーダをオクルージョンに対応させる MetaXRSDKv67以降)

本日はMetaQuest3の技術調査枠です。 MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。 本記事はMetaXRSDKv67以降でTextMeshProのシェーダをオクルージョンに対応させる手順です。 前提条件 本記事では以下の記事で作成し…

Unityでレイヤーマスク毎に衝突するレイヤーを指定する

本日はUnityの小ネタ枠です。 Unityでレイヤーマスク毎に衝突するレイヤーを指定する方法です。 LayerCollisionMatrix Unityではレイヤーごとに衝突検出を行うことができます。 LayerCollisionMatrix設定ではどのレイヤーとレイヤーが衝突するかを個別に設定…

Unityでレイキャストが反応するレイヤーを指定する

本日はUnityの小ネタ枠です。 Unityでレイキャストが反応するレイヤーを指定する方法です。 Physics.Raycast 光線(レイ)を飛ばして直線状の衝突判定をチェックします。 引数からレイの距離や衝突する対象レイヤーの指定が行えます。 docs.unity3d.comレイヤ…

Unityでスクリーンへのタッチ状態を取得する その4(ピンチイン/ピンチアウト操作を判定する)

本日はUnityの小ネタ枠です。 Unityでスクリーンへのタッチ状態を取得する方法です。 今回はピンチイン/ピンチアウト操作を判定する手順です。 Input.touchCount Touch構造体はスクリーンに指がタッチされた状態を保持する構造体です。 Input.GetTouchメソッ…

Colliderのクリック判定で表面のみに反応させる

本日はUnityの小ネタ枠です。 Colliderのクリック判定で表面のみに反応させる方法です。 Colliderのクリック判定の表裏 IsTriggerを有効にしたMeshColliderやBoxColliderなどには裏表の判定がありません。 以下のスクリプトを設定した裏表のPlaneを並べた場…

Unityでレイキャストをエディター上でデバッグ表示する

本日はUnityの小ネタ枠です。 Unityでレイキャストをエディター上でデバッグ表示する方法です。 Debug.DrawRay Debug.DrawRayはエディターのSceneビューにレイを表示します。 Gameビューのギズモの描画が有効になっている場合、Gameビューにも描画されます。…

Unityでスクリーンへのタッチ状態を取得する その3(タップからレイキャストを飛ばして3Dポインターのように動かす)

本日はUnityの小ネタ枠です。 Unityでスクリーンへのタッチ状態を取得する方法です。 今回は更にタッチ状態を参照してタップ座標からレイキャストを飛ばして3Dポインターのように動かしてみます。 Camera.ScreenPointToRay Camera.ScreenPointToRayメソッド…

Unityでスクリーンへのタッチ状態を取得する その2(マルチタップを検出する)

本日はUnityの小ネタ枠です。 Unityでスクリーンへのタッチ状態を取得する方法です。 Input.touchCount 同時にスクリーンに指がタッチされた数を返します。 フレーム毎でのタッチ数が返ります。 docs.unity3d.comTouch構造体はスクリーンに指がタッチされた…

Unityでスクリーンへのタッチ状態を取得する

本日はUnityの小ネタ枠です。 Unityでスクリーンへのタッチ状態を取得する方法です。 Touch Touch構造体はスクリーンに指がタッチされた状態を保持する構造体です。 Input.GetTouchメソッドを呼び出して毎フレーム最新の状態を取得することができます。 docs…

Unityでランダムなベクトルをオブジェクト自身から見た特定ベクトル方向に投射する

本日はUnityの小ネタ枠です。 Unityでランダムなベクトルをオブジェクト自身から見た特定ベクトル方向に投射する方法についてです。 Vector3.Project Vector3.Projectメソッドは特定ベクトルを別の指定ベクトルに投影します。 これにより特定ベクトルの指定…

Unityでオブジェクトをオブジェクト自身から見たベクトル方向に移動する

本日はUnityの小ネタ枠です。 Unityでオブジェクトをオブジェクト自身から見たベクトル方向に移動する方法についてです。 Transform.up/right/forward Transform.up/right/forwardはオブジェクト自身から見た上下左右前後ろ方向のワールド座標のベクトルを返…

Unityアプリで利用しているUnityバージョンを取得する

本日は Unity の小ネタ枠です。 Unityでスクリプトから利用しているUnityバージョンを取得する方法を記事にします。 Unityバージョンを取得する ApplicationクラスのunityVersion変数を参照することでUnityバージョンを取得できます。 docs.unity3d.com docs…

MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う その28(シーンモデルを利用できるかチェックする)

本日はMetaQuest3の技術調査枠です。 MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。 本記事はシーンモデルを利用できるかチェックする手順です。 前提条件 本記事では以下の記事で作成したシーンモデルの利用を有効にし…

MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う その27(シーンモデルを可視化する)

本日はMetaQuest3の技術調査枠です。 MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。 本記事はシーンモデルを可視化する手順です。 前提条件 本記事では以下の記事で作成したパススルーを有効にした Unity プロジェクト…

Questアプリでアプリ内からアプリを終了する

本日はUnityの小ネタ枠です。 Questアプリでアプリ内からアプリを終了する方法についてです。 Application.Quit() Application.Quit()はアプリケーションを終了する静的メソッドです。 Questアプリで本メソッドを呼び出すとアプリが即座に終了してホーム画面…

Questアプリでメニューボタンでウィンドウが開いたことを検知する

本日はUnityの小ネタ枠です。 Questアプリでメニューボタンでウィンドウが開いたことを検知する方法についてです。 OnApplicationFocus OnApplicationFocusmメソッドはアプリがフォーカスを取得またはロストしたときに呼び出されます。 本メソッドはMonoBeha…