为什么 属性 Range 不存在于 Random class in unity 中?

Why the property Range not exist in Random class in unity?

using System;
using UnityEngine;
using System.Collections;
using UnityStandardAssets.Characters.ThirdPerson;

public class Multiple_objects : MonoBehaviour {

    public GameObject prefab;
    public GameObject[] gos;
    public int NumberOfObjects;
    private ThirdPersonCharacter[] thirdPersonCharacter;
    private Animator[] _animator;
    private int count = 0;

    void Awake()
    {
        Vector3 v3 = prefab.transform.position;
        _animator = new Animator[NumberOfObjects];
            gos = new GameObject[NumberOfObjects];
        for(int i = 0; i < gos.Length; i++)
        {
            count = count + 2;
            GameObject clone = (GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity);
            gos [i] = clone;
            gos [i].transform.position = new Vector3 (v3.x - count, v3.y, v3.z);
            _animator [i] = gos[i].GetComponent<Animator> ();
            Math.Round(Random

当我在 Random 后面键入点时,例如:Random。 我只有 Equals 和 ReferenceEquals

如果我创建一个随机变量,例如:

Random _random;

然后我输入_random。 我得到了更多的属性,但没有范围。

Why the property Range not exist in Random class in unity?

Random _random; _random.Rand...

RangeRandomclass中的一个static函数。您无需创建 class 的实例即可在其中使用静态函数。你直接调用静态函数。

应该这样做:Random.Range(0f,3f);

如果您获得 Random' is an ambiguous reference betweenSystem.Random' 和 UnityEngine.Random' error then that's because you haveusing System;`(您在代码中所做的),因此您 必须 使用 full 命名空间访问 Unity 随机函数。

UnityEngine.Random.Range(0f, 3f);

写UnityEngine.Random.Range

你要弄清楚命名空间。

除非你想要 .net Random(在那种情况下请查看其他答案)

您同时使用了 UnityEngine 和 System 命名空间。这两个命名空间都包含一个 Random class,因此 Visual Studio/Unity 不知道您要使用哪个。要指定要使用的随机数,您只需这样做:

UnityEngine.Random.Range(0.0f, 5.0f);