Raycastが外れたときにExitと表示したいオブジェクトが1つの場合
一番シンプルでコストが低いのはタグを見る方法だと思います。
まず、Raycastが外れたときにExitと表示したいオブジェクトにタグを設定します。
ここではCharacter
としました。
あとは、コード内で判定するだけです。
下記コードではタグがCharacter
ではない場合、常にExitと表示されるのでそこはうまく処理してください。
C#
1if (Physics.Raycast(Ray ray, out RaycastHit hit, float distance))
2{
3 //タグがCharactorでない場合もExitとする
4 if (hit.collider.tag != "Character")
5 {
6 Debug.Log ("Exit");
7 }
8}
9else
10{
11 Debug.Log("Exit");
12}
Raycastが外れたときにExitと表示したいオブジェクトが複数の場合
上記コードのRaycastHit
ですがhit.collider.gameObject
といった形でヒットしたオブジェクトの情報を取得できるのでそれを利用すると良いと思います。一番楽なのがキャッシュしておいて比較するといいと思います。
C#
1
2GameObject ForcusObj;
3
4(省略)
5
6if(ForcusObj != hit.collider.gameObject)
7{
8 Debug.Log ("違うオブジェクト");
9}
10
11ForcusObj = hit.collider.gameObject;
あとは、タグとオブジェクトチェックを合体させると実現できると思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。