Unity事例ノート

UNITY

ゾーン内にランダムで投げ込む

決まったゾーン(座標エリア)に、ランダムでボールを投げ込むスクリプトを作成してみましょう。

矩形エリアを決めて、この中のランダム位置に、ボールが発射されます。

ベースボールで、ストライクゾーンに投げる動きとして、活用できそうな仕組みです。

関連記事:自機狙い(プレーヤーに向けた)発射 -3Dゲーム

オブジェクトの用意

まずは、標的となるオブジェクトを作成しましょう。

Cubeを作成して名前をTargetに変更。

座標を変更して、ボックスコライダーのチェックを外します。

メインカメラも移動して、Targetが映りこむようにします。

続いて、ボールの発射位置をつくります。

空のオブジェクトを作成します。

名前をShotManagerに変更し、座標はすべて0で配置します。

シーンビューではこのような配置になっています。

次は、ボールのPrefabを作成します。

Sphereを作成し、名前をBallに変更。

リジッドボディを追加します。

Ballをプロジェクトビューにドラッグ&ドロップし、Prefabデータにします。

Ballの元データは消しておきます。

ボールを投げ込むスクリプト

まずは、ボール発射のスクリプトを作成していきましょう。

BallShot.csを作成し、ShotManagerに追加します。

ターゲットにはTargetを、BallにはBallのプレハブを、BallSpeedには20を入力します。

標的がランダム移動するスクリプト

次は標的のスクリプトです。

標的が1秒おきにランダム移動し、移動のたびに、BallShotにボールを投げさせます。

TargetMove.csを作成し、Targetに追加しましょう。

ShotManagerのフィールドに、ShotManagerの入れます。

最後に、Targetを透明にします。

マテリアルを作成して、名前をToumeiに変更。

Rendering ModeをFadeに変更し、Aの値を0にします。

ToumeiマテリアルをTargetに付けます。

ゲームプレイしてみましょう。

Xが-2から2、Yが0から3の範囲内で、ターゲットが移動。

移動するたびにBallThrow()を実行させ、ターゲットに向けてボールを発射します。

関連記事:
自機狙い(プレーヤーに向けた)発射 -3Dゲーム