Menu
CoddyTech

ランダムに生成

CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 53/67。

Random.Range(min, max)はランダムな数値を選び、返される値は渡す数値の型によって異なります。floatの場合、minからmaxまでの値が、両端を含めて返されます。intの場合、max自体は含まれません。そのため、サイコロを振る場合は1から7を指定します。

int roll = Random.Range(1, 7);   // 1、2、3、4、5、または6
Debug.Log("You rolled " + roll);

int版ではmaxが含まれないため、Random.Range(0, names.Length)は常に有効な配列インデックスになります。また、結果をfloatに格納しても、Random.Range(-5, 5)が返すのは-5から4までの整数だけです。間の任意の値を得るには、Random.Range(-5f, 5f)と書きます。

3D空間で位置や方向を扱うために、Unityにはランダムなベクトルを生成する機能が2つ用意されています。Random.insideUnitSphereは、(0, 0, 0)を中心とする半径1の球の内部にあるランダムな点です。Random.onUnitSphereはその球の表面上のランダムな点で、長さ1のランダムな方向を表します。transform.position + Random.insideUnitSphere * 2fは、上下を含むあらゆる方向に最大2単位離れた位置を表します。

challenge icon

チャレンジ

中級

クリックするたびに、床の上のランダムな位置から木箱を落とします。

  • x と z:それぞれ -4 から 4 までの任意の値。整数に限りません。
  • y:5。木箱が床に落ちるようにします。
  • 回転なし。

Play を押して数回クリックし、それから Check を押します。

自分で試してみよう

using UnityEngine;

public class CrateDropper : MonoBehaviour
{
    public GameObject cratePrefab;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            // ランダムな位置からcrateを落とす:xとzは-4から4、y = 5
        }
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Unityスクリプティングの基礎のすべてのレッスン