青いやつの進捗日記。

べんきょうのしんちょくをかいていきます。

Unityで衝突判定して衝突した相手の物体壊す。

ドットインストールのUnity入門の

#19 パドルとの衝突判定をしてみよう https://dotinstall.com/lessons/basic_unity_v2/47319

#20 パドルの幅が狭くなるようにしよう https://dotinstall.com/lessons/basic_unity_v2/47320

qiita.com

これらが参考になります。

私はARKit上でタップすると前方に球を出し、画像認識で出たキューブをその球で消す、というものを作りました。

この球を出す方のGameobjectまたはPrefabにスクリプトを書きます。

その球とキューブ、どちらにもRigidbodyとColliderをつけておくのを忘れず。

void OnCollisionEnter(Collision collision) {
  if (collision.gameObject.CompareTag("BreakOutCube")) {
  Destroy(collision.gameObject);
  }
}

OnCollisionEnter でぶつかった時、

collision.gameObject.CompareTag("BreakOutCube")
gameObject(このスクリプトをつけているオブジェクト、今回は球)が
衝突した相手(collision.gameObject)が
BreakOutCubeってタグがついているオブジェクトだったら

Destroy(collision.gameObject)
衝突した相手(collision.gameObject)を破壊

という感じです。

ただ、 Destroyは完全にオブジェクトを削除してしまうので、オブジェクトを復活させたいなどあれば違う方法をとる必要があります。

marunouchi-tech.i-studio.co.jp