マリオのような2Dアクションゲームを作っています。
ボックスにプレイヤーが下から触れるとキノコが出現するようにしたいです。ボックスにraycastを使ったスクリプトを取りつけています。OnTriggerEnter2Dで判定をしていましたが、ボックスのistriggerをonにしなければならず、プレイヤーがボックスをすり抜けてしまうため、こちらの方法に変えました。
ただ、プレイヤーが下にいない時でも判定されてしまっており困っています。rayの長さは0.001fにして地面と反応しないようにしています。
Debug.Logでhit.collider.gameObject.nameを出力した結果、'block'と出てきてしまいました(ボックスそのものに反応しているようです)。
以下コードになります。よろしくお願いします。
void Update() { RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down, 0.001f); if(hit.collider != null){ //下方向に障害物があった場合 Debug.Log("下に障害物があります"); Instantiate (item1, transform.position, transform.rotation); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。