Unity事例ノート

UNITY

クリックした位置にオブジェクトを生成(Ray)

Unityには、目に見えない光(レーザービーム)を飛ばして、シーン上のコライダーと衝突した位置を取得できるRaycastHitの機能があります。

Rayを利用して、クリックした位置にPrefabを生成する仕組みを作ってみましょう。

関連記事:
Rayが当たった位置までの距離
Rayを当たらなくするオブジェクト
Rayに当たったオブジェクトを削除
向いている方向へRaycastを出す
Raycastによる特定オブジェクトの接触判定
左右にRaycastの接触判定をつくる
斜めに向けたRaycastで衝突判定

Rayで生成するPrefabを用意

まずは簡単に、シーン上に床と壁をつくりました。

ヒエラルキーに、空のオブジェクトを作成しましょう。

GameObjectという名前で表示されます。

続いて、生成したいオブジェクトをつくります。

今回は、Cubeオブジェクトを作成し、グリーン色をつけました。

これをPrefab化しましょう。

Assetsの中にPrefabsフォルダを作成し、ここにCubeをドラッグ&ドロップします。

ヒエラルキーにあるCubeは消しておきましょう。

Prefabデータに、RigidBodyコンポーネントを追加します。

クリックで生成するスクリプト

ClickPoint.csという名前でスクリプトを作成し、GameObject(空のオブジェクト)に追加します。

スクリプトはこのように書きました。

GameObjectのインスペクターを確認すると、キューブの項目が出てきます。

ここに、Cubeのプレハブを入れましょう。

プレイしてみましょう。

Rayとコライダーがぶつかった場所を取得して、Prefabオブジェクトを出現させます。

関連記事:
Rayが当たった位置までの距離
Rayを当たらなくするオブジェクト
Rayに当たったオブジェクトを削除
向いている方向へRaycastを出す
Raycastによる特定オブジェクトの接触判定
左右にRaycastの接触判定をつくる
斜めに向けたRaycastで衝突判定