Picking random Element from Array.

I’m making a Gamecontroller to spawn random “enemys” in 1 of 3 random positions.
So far I have.

All this does is spawns an Enemy on every update in the X: 1,2,3 Y: 10 position.

using UnityEngine;
using System.Collections;

public class GameController : MonoBehaviour
{
    public GameObject Enemy;
    public GameObject Player;
    public float sd = 5f;
    public float dia = 0.005f;
    public float[] yValues = new float[] {-3.5f, 0f, 3.5f};
    private float random;

    void Start()
    {
        Instantiate (Player, new Vector2 (0, 0), Quaternion.identity);
        enemySpawn();
    }

    void enemySpawn()
    {
        Instantiate (Enemy, new Vector2 (random, 10), Quaternion.identity);
    }

    void Update()
    {
        random = Random.Range (0, yValues.Length);
        sd -= dia * Time.deltaTime;
        enemySpawn();
    }
}

With this code VVVVV below this text it generates an Enemy at a position betwee X=0-3 Y=10

using UnityEngine;
using System.Collections;

public class GameController : MonoBehaviour
{
    public GameObject Enemy;
    public GameObject Player;
    public float sd = 5f;
    public float dia = 0.005f;
    public float[] yValues = new float[] {-3.5f, 0f, 3.5f};
    private float random;

    void Start()
    {
        Instantiate (Player, new Vector2 (0, 0), Quaternion.identity);
        enemySpawn();
    }

    void enemySpawn()
    {
        Instantiate (Enemy, new Vector2 (random, 10), Quaternion.identity);
    }

    void Update()
    {
        random = Random.Range (yValues[0], yValues[2]);
        sd -= dia * Time.deltaTime;
        enemySpawn();
    }
}

random = yValues[Random.Range(0, yValues.Length)]

Shouldn’t this be random = yValues[(int)Random.Range(0, yValues.Length)]

Thanks

@Duugu there is a float and int version of Random.Range() depending on what parameters are passed to it, 2 ints in, 1 int out

And 0 and array.Length are both ints, so there’s no need to cast it

Good to know. Thanks!