Unity レースゲームの作り方4 ゴールゲート作成と周回数の計測を実装しよう | Unity入門の森 ゲームの作り方

Unity レースゲームの作り方4 ゴールゲート作成と周回数の計測を実装しよう

Unity C# レースゲームの作り方 (PC・スマホ・VRクロスプラットフォーム開発チュートリアル)


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

本講座ではUnityで3Dレースゲームの作り方について解説しています。今回は第4回です。

今回は第四回となります。

前回はプレイヤーのカーブ(横移動処理)、アクセルの速度制限、背後に存在するカメラの追跡処理を作成しました。

前回の記事 :

Unityレースゲームの作り方3 カーブ・アクセル速度制限とカメラの追尾処理の実装
Uni本講座ではUnityで3Dレースゲームの作り方について説明していきます。 今回は第三回となります。 前回の記事 : 前回はプレイヤーを前後に動かしましたが、今回は車を横に動かしてカーブする、速度制限を付けてブレーキをかける、カメラの移...

今回はレースゲームに必須のスタート、ゴールなどを判定するためのゲートを作成します。またユーティリティに使えるコライダーのレシーバーを作成していきます。

では始めていきましょう!


【Line登録者限定のプレゼントもあるよ!】

汎用スクリプト ColliderCallReceiverスクリプトの作成

Gateの処理を作成する前に、ここでユーティリティ(便利)なスクリプトを作成していきます。

これは、コライダーが接触、侵入などをした時にイベントを発行して使いやすくするためのものです。

Projectウインドウ、「Assets/AppMain/Script」で右クリック「Create/C# Script」で新しいスクリプトを作成し名前を「ColliderCallReceiver」とします。

まずは全文をご覧ください。

これは丸々コピーでOKです。

簡単に解説すると「OnCollision○○」「OnTrigger○○」というのは、Unityに用意されているコールバック(コールバックとは、何か特定の処理が行われたときに呼び出される関数と考えればOKです)です。

これをコライダーを持ったGameObjectに付与されているコードに書いておくと、コライダーの接触や侵入に応じて自動的に予め設定した処理が実行されます。

こうしたコライダー接触判定の際に行われる処理を一つにまとめるためのスクリプトをここで作成しました。

スタート位置の作成

Gateの調整

ひとまずこの先Gateにオブジェクトを追加していくので、最初に作成した「Gate」の子のオブジェクトの名前をわかりやすくしていきます。

「Gate」を選択し、子の「Cube」を「Top」、「Cyllinder」をそれぞれ「Left」「Right」という名前に変更します。(わかりやすいように、だけですのでお好きに設定してOKです)

Gateの前後コライダーの作成

では処理を作成していきます。

簡単にイメージするとゲートにTriggerコライダー(衝突判定を持たないコライダー)を設置して、そこを車が通ったらラップをカウントすればいいかな?と思いますが、そうすると逆走でもカウントされてしまいますね。

いろんな解決法はありますが、ここでは前と後ろの2つコライダーを設けてどちらから来たのかを判定していきたいと思います。

ではまず、その前後のコライダーを作成します。これは「Cube」を適当に広げて、見た目を消して作成します。「Gate」の子に「Cube」を2つ作成。それらを「front」「back」という名前にします。それらを下記のような大きさ、位置に調整しましょう。

そしてこれら二つのコライダーを選択して、Inspectorでそれぞれの「BoxCollider」の「IsTrigger」にチェックをいれます。

さらにこれら二つに先に作成した「ColliderCallReceiver.cs」を付与します。ProjectウインドウからHierarchyの各GameObjectにドラック&ドロップします。

見た目を消していない状態では下記のようになります。

確認できたら見た目を消しましょう。「front」「back」を選択しInspectorの「MeshRenderer」の名前の左側のチェックマークを外します。すると見た目のみ消えます。

GateControllerの作成

ここからコードを書いていきますが、その前に「PlayerController.cs」に追記する必要があるので先にそちらを追記しましょう。(変更のない部分は省略しています)

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

テストプレイ

ここまでで設定が完了したのでテストをしてみましょう。ゲート前からスタートしてUnityのログに「Lap 1」もう一周したら「Lap 2」、逆走してゲートをくぐったら「逆走 Lap 0やLap 1」などが表示されることを確認しましょう。

これができればちゃんと周回数が数えられていますので◯周でゴールという処理が作成できます。

今回はここまでにしましょう。次回スタート、ゴールから作成して一人でのレースができるようにしていきます。

次回の記事 : 

レースゲームの作り方5 レース開始のカウントダウン・スタート・ゴール処理の作成
本講座ではUnityとC#を用いて3Dレースゲームの作り方について説明しています。 今回は第5回となります。 前回は周回数を数える処理を作成しました。今回はそれを使ってスタート、ゴールの処理を作成を行います。 前回の記事 : マリオカートの...

 

Unityレースゲームの作り方チュートリアル講座に戻る>>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

タイトルとURLをコピーしました