Help us understand the problem. What is going on with this article?

ランダムに障害物をVRレーシングゲームに登場させる

More than 3 years have passed since last update.

この記事の5回目

今回はランダムに障害物を発生させるロジックを作ります。とはいっても多くはhityotamaさんの記事【Unity開発4】敵キャラをランダムで生成! Randam.RangeとInstantiate【ドライビングゲーム5】をもとにしています。
今回はその中の、createScript.csの変更とそれにまつわる、各設定の変更について記載します。

createScript.csの変更

スクリプトは、Mapの生成の削除やenemyborderなどの固定値の変更を行いました。そうすると以下のようになります。

createScript.cs
using UnityEngine;
using System.Collections;

public class createScript : MonoBehaviour {

public GameObject enemy1;
public GameObject enemy2;
public GameObject enemy3;
public GameObject enemy4;

int border = 1000;
int enemyBorder = 1;
float defdiff = 100f;
void Update (){
  if (transform.position.z > enemyBorder) {
    CreateEnemy ();
  }
}

void CreateEnemy (){
   if (Random.Range (0, 3) == 0) {
      Instantiate (enemy1, new Vector3 (-5f, 0f, enemyBorder + defdiff), enemy1.transform.rotation);
   }

   if (Random.Range (0, 3) == 0) {
      Instantiate (enemy2, new Vector3 (-1.8f, 0f, enemyBorder + defdiff), enemy2.transform.rotation);
}
   if (Random.Range (0, 3) == 0) {
      Instantiate (enemy3, new Vector3 (1.8f, 0f, enemyBorder + defdiff), enemy3.transform.rotation);
   }

   if ((Random.Range (0, 3) == 0)) {
      Instantiate (enemy4, new Vector3 (5f, 0f, enemyBorder + defdiff),enemy3.transform.rotation);
    }
    enemyBorder += Random.Range (0, 3)*10;
  }

}

このスクリプトをMainCameraにアタッチします

各設定の変更

ここではアタッチ後のインスペクタの設定を説明します。hityotamaさんの記事では、Classic Carというアセットを使っていましたが今回は自作したものを利用します。

自作したオブジェクトはCubeを利用して作りました設定値は下の図のように設定しました。

スクリーンショット 2015-07-20 0.02.39.png

上記のBlockを障害物として下記の図のようにcreateScript.csのインスペクタに設定しました。

スクリーンショット 2015-07-20 0.05.13.png

これで障害物がランダムで現れます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away