アラキタウン

黒歴史や生き恥を切り売り

playmakerのraycast機能を使って見つめているときだけマテリアルの色を変えるようにする。

playmakerのraycast機能を使って見つめているときだけマテリアルの色を変えるようにする。

動作としてはこんなの.

 

 

 

raycast出す側

見る動作なので、cameraオブジェクトの下に作った。

Z方向に伸ばしたいので、DirectionのZを1を設定。
Store Did Hitでraycastにオブジェクトがあたっているかどうか、
Store Hit Objectでraycastにあたったオブジェクト自体が取得できるので、
グローバル変数RayCastHit,RaycastHitObjectを設定。
Debugにチェックを入れるとSceneでraycastの線を見れることができます。

 

 

raycastを受ける側
全体図は以下

ObjectInit

RaycastHitObjectをNoneで初期化


CheckRaycastHit

BoolTestでRaycastHitの値をチェック、raycastにあたってTrueになったらCheckObjectに遷移です。

 

 

CheckObject


GameObjectCompareでRaycastHitObjectが今回のターゲットのCubeかどうか確認

 

Cubeじゃない場合はCheckObjectChangeに遷移

 

CheckObjectChange


GameObjectChangeでRaycastHitObjectが変わるかどうかを取得
変わったらまたCheckRaycastHitに遷移

 

 

Cubeである場合は

SetRedMaterialに遷移

SetMaterialColorで赤色にしてCheckRaycastCheckFalseに遷移

 

SetRedMaterial

 

CheckRaycastCheckFalse

booltestでraycastに何もあたっているものがなくなることを検知したら
SetWhiteMaterialで白に戻す

 

SetWhiteMaterial

 

白に戻ったらObjectInitに遷移して最初からという流れにしてみました。


ほかにも良い方法あるだろうけど、私はこうやってみました。