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で衝突判定
クリックした場所にオブジェクトを置く

この記事の監修・専門指導

枚方市のプログラミング専門スクール
フタバゼミ 枚方くずは校

この記事で解説したUnityやC#の技術も、当校では直接個別指導しています。「むずかしいことをおもしろく」をモットーに、初心者から本格開発までサポート。樟葉駅から徒歩1分、まずはお気軽に体験会へお越しください。

SCHOOL教室案内