【UE4】レベルに配置したアクターの近くにスポーン出来なくする

タワーディフェンスで、すでに配置した兵器の近くに兵器を置けなくするようにしました。

 

下図は左側がすでに配置した兵器。右側がマウスに追従して、置く位置を決定する前の兵器。

f:id:tsugumiyumeno:20200924002749p:plain

すでに配置した兵器から離れていると配置できますが、近づくと下図のように赤くなり、配置できない範囲を表示しています。

f:id:tsugumiyumeno:20200924003023p:plain

 

①兵器をスポーンするたびに、配列にADDする

f:id:tsugumiyumeno:20200924003216p:plain

 

②配列に保存されている兵器と、これからスポーンする兵器のXY平面での距離を求め、一定の範囲内かチェックする関数を作成する

PlaceWeaponがすでに置いた兵器配列

GetNGAreaSizeがすでに置いた兵器の座標と、置けない範囲を返す関数

f:id:tsugumiyumeno:20200924003532p:plain

 

既に置かれている配列と、これから置く兵器の距離が一定距離以下ならtrueを返す

一定以下未満の兵器が無ければfalseを返す

 

③スポーンする前にIsCollisionWeaponを呼んで、一定距離以下なら赤い範囲を表示する

そうでなければスポーン可能となる。

f:id:tsugumiyumeno:20200924003818p:plain