【Unity】 衝突判定について
- 衝突判定するための設定
目次
衝突判定するための設定
まず、衝突を行うCubeオブジェクトを用意します。[Hierarchy]の左上の+ボタンから[3Dオブジェクト]→[Cube]を選択し、正方形のオブジェクトを作成します。
衝突判定を行うためには、まず検知を行うための[Collider]と呼ばれるコンポーネントをゲームオブジェクトに追加する必要があります。 [Collider]には様々な形状のものがありますが、今回は[BoxCollider]と呼ばれる正方形の形状のものを使用します。先ほど作成したCubeには、 既にデフォルトでこのBoxColliderが付与されています。
自分で一から作成したオブジェクトに衝突判定を付与するには、[Add Component]のボタンをクリックし、形状にあったColliderを選択する必要があります。
このオブジェクトを重力で落下させて、オブジェクトを衝突させたいので、[RigidBody]と呼ばれるコンポーネントを追加します。
位置を落下スタート地点へ移動します。今回はXYZを図のような位置にします。
もう一つ同じ要領で、Cubeオブジェクトを作成します。この際、RigidBodyは追加で付与しなくて大丈夫です。
オブジェクトの位置を原点(positionが全て0)へ移動します。
この状態でゲームを開始すると、オブジェクトが落下し衝突することが確認できます。
衝突することが確認できたら、次は衝突後の処理を書いていきます。今回は衝突したら、コンソールに[衝突した!!]と表示するプログラムです。
using UnityEngine; public class CollisionDetector : MonoBehaviour { private void OnCollisionEnter(Collision collision) { Debug.Log("衝突した!!"); } }
動作を確認してみます。コンソールに以下のように表示されていれば、成功です。
この処理の部分をオブジェクト削除などに、書き換えていくとゲームらしくなっていきますね。色々試してみると面白いかもしれません。
この本では、Unityの基本から高度なテクニックまで、実際のプロジェクトに役立つ知識を網羅しています。 初心者から経験者まで、Unityを扱うすべての開発者にとっての必読書です。
この本を読んで、あなたのUnityスキルを飛躍的に向上させませんか?
合わせて読みたい
SQLiteのEntityFrameworkを利用する
この記事では、UnityでSQLiteのEntityFrameworkを活用する方法を詳細に説明しています。オープンソースの軽量RDBMSであるSQLiteの導入から、Entity Frameworkを用いてデータベースのテーブルをクラスで表現し、データの読み書きを行う方法までを解説。ライブラリのインストール、DBファイルの作成、テーブルの作成、エンティティとDBコンテキストの設定に至るまでのプロセスが具体的に示されています。Unity開発者にとって、ゲーム内データ管理を効率化する貴重な情報源です。
更新日:2024/03/18