縦スクロールのゲームを作り始めたのですが、見えない壁にplayer(黒い矢印)が衝突したときの処理をしたいのです。
create emptyを押しbox collider2dを追加し、playerにpollygon collider2dを追加し、下記のようなスクリプトを書いて試してみたのですが、処理が実行されません。また壁をすり抜けるのも謎です。処理的にはplayerを右に90度向きを変えるだけなのですり抜けてもいいのですが、もやもやします。
解決方法が分かる方、ご教授頂けましたら幸いです。
c#
1//Player Movement.cs 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class PlayerMovement : MonoBehaviour 7{ 8 private const float speed = 5.0f; 9 10 void Update() 11 { 12 transform.position += transform.forward * speed * Time.deltaTime; 13 } 14 15 void OnCollisionEnter(Collision collision) 16 { 17 if (collision.gameObject.tag == "InvisibilityWall") 18 { 19 transform.Rotate(new Vector3(0f, 0f, -90f)); 20 } 21 else 22 { 23 Destroy(gameObject); 24 } 25 } 26} 27
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。