【Unity】プレイヤーが当たったら消えるブロック(GameObject)を作る

2020年11月15日Unity

スポンサーリンク

プレイヤーが当たると消えるブロック(障害物)の作り方を紹介します。

プレイヤーとしては以下を使います。

完成動作

作り方(動画)

作り方(ブログ)

ブロック(GameObject)を用意する

1.Cylinderを設置します。名前はCylinderDestroyにします。(わかりやすいようにMaterialで色を付けています。)

当たったら消えるスクリプトを作成する

1.Destroy.csという名前のスクリプトを作成して、以下のコードを記載する。

using UnityEngine;

public class Destroy : MonoBehaviour
{
	/// <summary>
	/// 衝突した時
	/// </summary>
	/// <param name="collision"></param>
	void OnCollisionEnter(Collision collision)
	{
		// 衝突した相手にPlayerタグが付いているとき
		if (collision.gameObject.tag == "Player")
		{
			// 0.2秒後に消える
			Destroy(gameObject, 0.2f);
		}
	}
}

スクリプトを消したいブロックにアタッチする

1.Destroy.csを消したいブロック(CylinderDestroyオブジェクト)にアタッチする。

消したいブロック(GameObject)のCapsule Colliderの"Is Trigger"にチェックを入れない

1.消したいブロック(CylinderDestroyオブジェクト)のCapsule Colliderの"Is Trigger"にチェックを入れない。
※ここにチェックが入っているとDestroyスクリプトのOnCollisionEnterが反応しない。

プレイヤーオブジェクトのTagに"Player"を設定

1.プレイヤーオブジェクト(今回はunitychan)のTagに"Player"を設定

完成

これでプレイヤーが消えるブロック(CylinderDestroyオブジェクト)にぶつかると、ブロックが消える。

Unity

Posted by ton