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に遷移して最初からという流れにしてみました。
ほかにも良い方法あるだろうけど、私はこうやってみました。