unityで、当たったら消える、という 簡単な3Dゲームを作ってみたいと思います。

主な学習のテーマは「OnCollisionEnter」です。

ちなみに、これを使用するときの注意点は、オブジェクトに「Rigidbody(物理シミュレーション)」が付いているか、いないかで、ちょっと勝手がかわってきます。

①Rigidbodyなし

⇒普通にOnCollisionEnterを使えばいい

②Rigidbodyあり(物理シミュレーション搭載)

⇒この場合、「誰と当たったか」を指定しないと、なんでもかんでも「当たり判定」されてしまうので注意が必要です。

コード

BallScript 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BallScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        //1)移動の呪文(位置情報の変更)
        //transform.position += new Vector3(x, y, z);
        transform.position += new Vector3(0f, 0f, -5f)*Time.deltaTime;
    }

    //3)当たったら(ボール編)
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.CompareTag("BarTag"))
        {
            Destroy(gameObject);//ここでのgameObjectはBallのこと
        }
    }
}

▼BarScript

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BarScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    //2)当たったら
    private void OnCollisionEnter(Collision collision)
    {
        Destroy(gameObject); //ここでのgameObjectはBarのこと
    }
}

    コメントを残す