Esempio n. 1
0
    public ChargingPad GetChargingPad()
    {
        foreach (GameObject chargingPadObj in _chargingPads)
        {
            ChargingPad chargingPad = chargingPadObj.GetComponent <ChargingPad>();

            if (chargingPad.Available)
            {
                return(chargingPad);
            }
        }

        return(null);
    }
Esempio n. 2
0
    private void Update()
    {
        _timer += Time.deltaTime;

        if (_timer >= spawnTime)
        {
            ChargingPad pad = ChargingPadManager.Instance.GetChargingPad();

            if (ChargingPadManager.Instance.SlotsInUse < ChargingPadManager.Instance.TotalSlots)
            {
                if (carPrefabs.Length > 0)
                {
                    GameObject prefab = carPrefabs[(int)Random.Range(0, carPrefabs.Length)];
                    Instantiate(prefab, transform.position, prefab.transform.rotation);
                }
            }

            _timer = 0f;
        }
    }
Esempio n. 3
0
    private void Awake()
    {
        _exit = GameObject.FindGameObjectWithTag("Finish").transform;

        currentEnergy = Random.Range(20f, batteryCapacity - 50f);

        _destinationPad           = ChargingPadManager.Instance.GetChargingPad();
        _destinationPad.Available = false;

        _getInPoints.Enqueue(new Vector3(transform.position.x, 0f, _destinationPad.EntryPoint.position.z));
        _getInPoints.Enqueue(_destinationPad.EntryPoint.position);
        _getInPoints.Enqueue(_destinationPad.transform.position);

        _getOutPoints.Enqueue(_destinationPad.EntryPoint.position);
        _getOutPoints.Enqueue(new Vector3(_exit.position.x, 0f, _destinationPad.EntryPoint.position.z));
        _getOutPoints.Enqueue(_exit.position);

        _nextPoint = _getInPoints.Dequeue();

        _initalRotation = transform.rotation;
    }