先日Traceを使い近くのアクター等を参照できる事を知り、これら応用して障害物がある場合キューブを動かせないようにする仕組みを作りました。
今回判断したいのは【キューブが移動する先の障害物の有無】なので、まずはBoxTraceを使い元となるキューブの面を一回で動かす距離まで引き伸ばしたTraceを四方に配置し、
障害物がない場合
変数CanMove(Boolean)をTrue
障害物がある場合
変数CanMove(Boolean)をFalse
にそれぞれセットします。
次にBoxCollisionのOverlapEventを追加し、そこから
- 変数CanMove(Boolean)
- OverlapActor == PlayerCharacter
上記の二つをANDで出力したものをBranchに繋ぎ、それがTrueだった場合、
変数Direction(Vector)
を対応した方向に動くようにセットするものを4つ(四方に必要なので)作り、以前から使用しているキューブを動かす機構に繋げました。
このTraceを四方向分
キューブを動かす機構
これらによって、前回作った【キャラクターBPでキューブを動かすシステム】を撤廃しました。
以上のプログラムを使い軽いパズルの様なものを作ってみようと思います。
0 件のコメント:
コメントを投稿