Unityで、プレイヤーキャラを動かすスクリプトに『壁と衝突した時にステージの中心にワープする』という命令を書きたくて、

Unityで、プレイヤーキャラを動かすスクリプトに『壁と衝突した時にステージの中心にワープする』という命令を書きたくて、 private void OnCollisionEnter(Collision collision) //衝突の検知 { if (collision.gameObject.tag == "wall") //タグが"wall"だった場合の処理 Debug.Log("デバッグ①"); { Debug.Log("デバッグ②"); } } と、書きました。 しかし、「Debug.Log("デバッグ①");」「Debug.Log("デバッグ②");」のどちらも実行されていないのを見るに書き方を直す必要があるのですが、どこを直す必要があるのでしょうか?エラーは出ていません。 壁にはBoxColliderが付いており、キャラにはCapsuleColliderが付いていて、キャラが壁をすり抜けるという現象は起こっていません。

ベストアンサー

0

スクリプトには問題なさそうです。 壁やプレイヤーのRigidbodyの有無が関係しているかもしれません。

そうですよね。スクリプトは以前作ったものと同じように書いているので大丈夫な感じはするのですが... Rigidbodyつけてとかも一応やってはみたのですが、まだやり忘れている事があるかもしれないのでもうちょっと頑張ってみます。