前回Physics.Raycastで一定距離のアイテム(などの対象物)に視線が当たっているかどうかを判定するようにした。
この時、レイが衝突した対象物に関する情報がRaycastHit変数に渡されている。
(RaycastHit名).collider.SendMessage((送るメッセージ)) で対象物の関数などを呼び出せる。この時呼び出される関数はpublicである必要は無い。
アイテム側にオブジェクトの破棄などの関数を作って呼び出すと、見た目上はアイテムを拾ったように見える。後で所持品に追加などの処理を追加していけばよい。
コントローラの入力スクリプトはプレイヤーとなるオブジェクトにアタッチしていたが、入力用のオブジェクトを独立させる事にした。
プレイヤーはコントローラで動かす頻度が高い対象ではあるが、いわゆるポーズ画面とかメニュー画面と呼ばれるものを呼び出しているときはコントローラが動かすものはプレイヤーではない。カーソルだったりスライダーだったりと、同じボタンでも状況によって動かす対象を変える必要がある。