MRが楽しい

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

2023-03-01から1ヶ月間の記事一覧

ARFoundationでOcclusionを利用する

本日は ARFoundation の小ネタ枠です。 ARFoundation で Occlusion を利用する手順の記事を翻訳します。 前提条件 ARFoundation のインポート手順は以下の記事を詐称ください。 bluebirdofoz.hatenablog.com ARFoundation で Occlusion を利用する ARFoundat…

HoloLens2でホロモンアプリを作る その119(ヘルプウィンドとメニューのアイテムを判別する)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回はアイテムの除去を行う際にヘルプウィンドとメニューのアイテムを判別する機能を追加しました。 ヘルプウィンドとメニューのアイテムを判別する 前回記事でメニュ…

Sortを使ってリストの値や要素を元にソートを行う

本日は C# の小ネタ枠です。 Sortを使ってリストの値や要素を元にソートを行う方法を記事にします。 Sort List.Sort メソッドはリスト全体の要素を参照して並べ替えを行います。 比較メソッドをオーバーロードすることで要素内のプロパティを比較するなど並…

Unityでゲームオブジェクトがカメラの方向を常に向き続けるコンポーネントを作成する

本日は Unity の小ネタ枠です。 Unityでゲームオブジェクトがカメラの方向を常に向き続けるコンポーネントを作成してみます。 カメラ方向へのベクトルを取得する ゲームオブジェクトをカメラ方向に向けるには、カメラ方向へのベクトルを回転に変換してゲーム…

UniRxのThrottleを使って一定時間UIへの入力が無かった場合に処理を行う

本日は UniRx の小ネタ枠です。 UniRx の Throttle を使って一定時間UIへの入力が無かった場合に処理を行う方法を記事にします。 UniRxのThrottleを使って一定時間UIへの入力が無かった場合に処理を行う UniRx の Throttle オペレータは指定の時間の間に複数…

HoloLens2でホロモンアプリを作る その118(シーンに配置されたアイテムをすべて除去する)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回はシーンに配置されたアイテムをすべて除去する機能を追加しました。 GetComponentsInChildren GetComponentsInChildren は現在のゲームオブジェクトまたはその子…

HoloLens2でホロモンアプリを作る その117(ヘルプウィンドウが一定時間で消えるようにする)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回はヘルプウィンドウが一定時間で消えるようにする修正を行いました。 ヘルプウィンドウが一定時間で消えるようにする アプリ起動時、ホロモンやアイテムの上部に表…

UniRxのMergeを使って複数のボタンに同じ処理を設定する

本日は UniRx の小ネタ枠です。 UniRxのMergeを使って複数のボタンに同じ処理を設定する方法を記事にします。 UniRxのMergeを使って複数のボタンに同じ処理を設定する UniRx の Merge オペレータを使うことで複数の Observable に対してまとめて購読を行えま…

UniRxのToUniTaskを使ってボタンの押下をawaitを使って待機する

本日は UniRx の小ネタ枠です。 UniRxのToUniTaskを使ってボタンの押下をawaitを使って待機する方法を記事にします。 UniRxのToUniTaskを使ってボタンの押下をawaitを使って待機する UniRx の OnClickAsObservable メソッドを使うことで Button のクリックイ…

HoloLens2でホロモンアプリを作る その116(SubjectとIObservableを使ってボタン操作の監視用変数を公開する)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回はSubjectとIObservableを使ってボタン操作の監視用変数を公開する修正を行いました。 SubjectとIObservableを使ってボタン操作の監視用変数を公開する Subject は…

SDキャラクターの3Dモデルを作成する記事をまとめる

本記事ではSDホロラボちゃんの3Dモデルの作成記事をまとめます。 前提記事 SDホロラボちゃんの3Dモデル作成は以下のまとめ記事を参考に実施しています。 各作業ステップのより詳細なまとめはこちらを参照ください。 bluebirdofoz.hatenablog.com モデリング…

C#9.0でパターン結合子(not,and,or)を利用する

本日は C# の小ネタ枠です。 C#9.0でパターン結合子(not,and,or)を利用する方法を記事にします。 パターン結合子(not,and,or) C# 9.0 からは not、and、および or のパターン結合子を使って論理パターンを作成可能です。 Unity ではバージョン 2021.2 以降で…

HoloLens2でホロモンアプリを作る その115(メインメニューのボタン操作をスクリプトで管理する)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 今回はメインメニューのボタン操作をスクリプトで管理する修正を行いました。 ボタン操作をスクリプトで管理する 今回はこれまで Inspector の OnClick で管理していた…

UniRxを使ってMRTKのボタンイベントをスクリプトで処理する

本日は MRTK の小ネタ枠です。 UniRxを使ってMRTKのボタンイベントをスクリプトで処理する方法について記事にします。 前提条件 MRTK を使ったプロジェクトの環境構築手順は以下の記事を参照ください。 bluebirdofoz.hatenablog.com UniRx の環境構築手順は…

UnityでBoxColliderの対角線の長さを取得する

本日は Unity の小ネタ枠です。 Unity で BoxCollider の対角線の長さを取得する方法を記事にします。 BoxCollider BoxCollider では Inspector の Center または Size 変数から当たり判定のオフセットやサイズを設定することができます。 docs.unity3d.com …

UnityのInspectorで値の代入を含めたテキストのフォーマットを設定する

本日は Unity の小ネタ枠です。 UnityのInspectorで値の代入を含めたテキストのフォーマットを設定する方法を記事にします。 string.Format 値の代入を含めたテキストのフォーマットを作成するには string.Format を利用します。 string.Format は値を指定さ…

C#でis演算子を使って型変換と成否判定を同時に行う

本日は C# の小ネタ枠です。 C# で is 演算子を使って型変換と成否判定を同時に行う方法を記事にします。 is演算子 is演算子は型のキャストとその変換の型に互換性があるかの判定を同時に行います。 本演算子は C# 9.0 以降利用可能です。Unity ではバージョ…

ReactiveCollectionでコレクションの追加と更新の変更をまとめて通知する

本日は UniRx の小ネタ枠です。 ReactiveCollection でコレクションの追加と更新の変更をまとめて通知する方法について記事にします。 前回記事 以下の前回記事の続きです。 bluebirdofoz.hatenablog.com Merge Merge オペレータを利用することで複数のシー…

ReactiveCollectionでコレクションの様々な変化を通知する

本日は UniRx の小ネタ枠です。 ReactiveCollection でコレクションの様々な変化を通知する方法について記事にします。 ReactiveCollection UniRx の ReactiveCollection は変数を監視可能なリスト型です。 コレクションの変化を購読(Sbscribe)することで、…

HoloLens2でホロモンアプリを作る その114(ヘルプウィンドウとスタンドを別々に管理する)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 ヘルプウィンドウとスタンドを別々に管理する修正を行いました。 ヘルプウィンドウとスタンド これまで共通のプレハブで管理していたヘルプウィンドウとスタンドを別々…

BoxColliderのローカル座標とワールド座標のCenter,SizeまたはBoundsをそれぞれ取得する

本日は Unity の小ネタ枠です。 BoxCollider のローカル座標とワールド座標の Center, Size または Bounds をそれぞれ取得する BoxCollider BoxCollider では Inspector の Center または Size 変数から当たり判定のオフセットやサイズを設定することができ…

MonoBeheviourのabstractクラスを継承したコンポーネントの参照をInspectorビューで差し替える

本日は Unity の小ネタ枠です。 以前調査を行った以下の記事から更に Inspector ビューの動作について確認したかったことがあったので記事に残します。 bluebirdofoz.hatenablog.com今回は abstract 修飾子で継承先で共通のメソッドの実装を強制する MonoBeh…

UnityのTryGetComponentで変数から型を推定してコンポーネントを取得する

本日は Unity の小ネタ枠です。 Unity の TryGetComponent で変数から型を推定してコンポーネントを取得する方法について記事にします。 TryGetComponent TryGetComponent は指定の型のコンポーネントを1つ取得します。 メソッドは指定の型のコンポーネント…

EnumerableのOfTypeを使って型を指定して要素のシーケンスを取得する

本日は C# の小ネタ枠です。 Enumerable の OfType を使って型を指定して要素のシーケンスを取得する方法について記事に残します。 OfTypeメソッド OfType は指定した型で要素をフィルタ処理して返します。 learn.microsoft.com 動作確認 ベースクラスと幾つ…

HoloLens2でホロモンアプリを作る その113(ヘルプウィンドウを共通化する)

本日はアプリ作成枠です。 HoloLens2でホロモンアプリを作る進捗を書き留めていきます。 ヘルプウィンドウを共通化する修正を行いました。 ホロモンアプリで表示されるヘルプウィンドウ ホロモンアプリではオブジェクトごとにそのキャラクターやアイテムを説…

EnumerableのSelectを使って条件に合致する値のインデックスを同時に取得する

本日は C# の小ネタ枠です。 EnumerableのSelectを使って条件に合致する値のインデックスを同時に取得する方法について記事に残します。 Selectメソッド Select はシーケンスの各要素を指定したフォームに変更します。 また要素の変更だけでなく、Func の se…

EnumerableのFirstで条件に合致する値が存在しなかった場合のデフォルト値を指定する

本日は C# の小ネタ枠です。 Enumerable の First で条件に合致する値が存在しなかった場合のデフォルト値を指定する方法について記事に残します。 Firstメソッド First は指定した条件に合致する最初の要素を返します。 learn.microsoft.comまたは合致する…

IgnoreRaycastレイヤーを使ってオブジェクトに対するレイキャストを無視する

本日は Unity の小ネタ枠です。 IgnoreRaycast レイヤーを使ってオブジェクトに対するレイキャストを無視する方法について記事にします。 IgnoreRaycastレイヤー IgnoreRaycast レイヤーは Unity プロジェクトでデフォルトで用意されているレイキャストを無…

RiderでUnityのスクリプトフォーマットを利用する

本日は Rider の小ネタ枠です。 RiderでUnityのスクリプトフォーマットを利用する方法を記事にします。 Unityのスクリプトフォーマットを利用する Rider を利用して Unity のスクリプトを新規作成する場合、幾つかのフォーマットを利用可能です。 [Explorer]…

UnityでToggleGroupを設定して必ずトグルが1つのみ選択されるようにする

本日は Unity の小ネタ枠です。 Unityで ToggleGroup を設定して必ずトグルが1つのみ選択されるようにする方法を記事にします。 ToggleGroup ToggleGroup は Toggle のグループを設定するコンポーネントです。 ToggleGroup に所属する Toggle のうち、選択…