【UE4】レベルに配置したアクターの近くにスポーン出来なくする
タワーディフェンスで、すでに配置した兵器の近くに兵器を置けなくするようにしました。
下図は左側がすでに配置した兵器。右側がマウスに追従して、置く位置を決定する前の兵器。
すでに配置した兵器から離れていると配置できますが、近づくと下図のように赤くなり、配置できない範囲を表示しています。
①兵器をスポーンするたびに、配列にADDする
②配列に保存されている兵器と、これからスポーンする兵器のXY平面での距離を求め、一定の範囲内かチェックする関数を作成する
PlaceWeaponがすでに置いた兵器配列
GetNGAreaSizeがすでに置いた兵器の座標と、置けない範囲を返す関数
既に置かれている配列と、これから置く兵器の距離が一定距離以下ならtrueを返す
一定以下未満の兵器が無ければfalseを返す
③スポーンする前にIsCollisionWeaponを呼んで、一定距離以下なら赤い範囲を表示する
そうでなければスポーン可能となる。