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のこと
}
}