雑学豚の巣穴

盛大なメモ帳

第一話 くたばれ!ボックスコライダー!

 

敵は四角だしボックスコライダーで作ってー

引っかかり対策でエッジの半径って設定つけて角を曲線にしてー

X方向に速度を与えてー

よしっ歩かせることに成功!

プレイヤーが持ってる攻撃判定に当たったら死ぬ設定も有効!

 

ここで次の段階、敵キャラは壁にぶつかったらUターンさせたいよねである。

 

壁も設定上は地面だしなー…落下して着地も地面との衝突だから地面にぶつかったら反転って訳にもいかないし

そもそもOnCollisionEnter2Dは地面に接したまま地面とぶつかっても発生しないし

プレイヤーに使った目の前のレイヤーが地面かどうか判定使うか

 

目の前のレイヤーが地面だったら移動X方向を乗算で-1するだけの設定でとりあえずテスト

…壁にぶつかってるのに反転しないなー

壁判定取得してないのかな?

LayerMask.NameToLayer("Ground")が悪いのかな?

そもそもタイルマップのレイヤーの設定どうなってるんや

え?256?おかしない?でも正常に動作してる…なんでや

ま、まぁ精査は後として敵キャラにも同じ設定して動かしてみよう。

 

設定同じでもダメか―

何が悪いのかなー目の前って設定があかんのかな

c2D.bounds.centerにc2D.bounds.extents.xと前方定数を移動方向(1か-1)かけたの足したのが前方でー

その座標どこだろか…?

ちょっと見てみるかー

正しそうに見えるけどなー

…なんか座標誤差でずれてない?

前方短くない?

 

『引っかかり対策でエッジの半径って設定つけて角を曲線にしてー』

『エッジの半径って設定つけて角を曲線にしてー』

『エッジの半径って設定』

 

ちょっと待って?

まさかコライダーのサイズにこれ含まれてないの…?

当たり判定の大きさ広げる設定なのにサイズに含まれないの…?

しかもこれ?直線使うコライダーに用意された設定だから親クラスのCollider2Dには無い設定なの…?

共通関数にedgeRadius足すのちょっと変えなきゃなー

 

f:id:rrroo:20200330041742g:plain

一つ壁に当たったら方向転換し二つ敵に当たったら方向転換し