第10回 3D探索3
カメラ中央の対象をRaycastで選び、距離と遮蔽物を確認して操作案内を表示します。入力取得、対象選択、対象自身の処理を分け、次回の鍵と扉へ接続します。
配布プロジェクト
第08〜11回の開始用プロジェクトは準備中です。配布状況を確認してください。第10回では歩行・アニメーションに、ExploreTargetを持つ確認用対象と案内UIを接続した状態から始めます。
この回のゴール
- 画面中央からRaycastを出す
- プレイヤーからの距離と遮蔽物で操作の可否を判断する
- 対象がないときは案内を消す
- 決定入力を対象の共通の操作入口へ渡す
授業の進め方
1 / 4画面中央から操作対象を選ぶRaycastで最初に当たった物を調べ、プレイヤーが届く対象だけを返す2 / 4対象へ操作入力を渡す対象選択と具体的な処理を分け、同じ入力を共通の操作入口へ渡す3 / 4状態に応じた操作案内を読む同じ対象でも所持状態によって案内が変わることを確かめる4 / 4対象の解除と再操作を確認する対象が消えたり操作範囲から外れたりした場合も、案内と入力を対応させる
今回実装する範囲
| 区分 | 内容 |
|---|---|
| 中心の処理 | ExplorerInteraction.FindTarget、案内の表示、入力時のInteract呼び出し |
| 提供機能を利用 | NavMesh上の歩行、Animator、入力取得、ExploreTargetと確認用対象 |
| 次回に実装 | 鍵の取得と扉の開閉条件 |
| 発展 | 操作アニメーションや長時間の操作に対する状態管理 |
完成確認
- 正面の近い対象へ操作案内が表示される
- 距離を超える、視線を外す、壁で遮る、の各条件で案内が消える
- 決定入力で選択中の対象だけを操作できる
- 対象がない状態で入力しても例外が出ない