【Unity】プレイヤーが当たったら消えるブロック(GameObject)を作る
プレイヤーが当たると消えるブロック(障害物)の作り方を紹介します。
プレイヤーとしては以下を使います。
目次
完成動作
作り方(動画)
作り方(ブログ)
ブロック(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オブジェクト)にぶつかると、ブロックが消える。
ディスカッション
コメント一覧
まだ、コメントがありません