Exemple #1
0
    private void SpawnObstacles(bool firstChunk)
    {
        float spawnStartPoint;

        if (firstChunk)
        {
            spawnStartPoint = ChunkCenter.z + _chunkLength / 2;
        }
        else
        {
            spawnStartPoint = ChunkCenter.z - _chunkLength / 2 + _obstacleSpawnDistanceMin;
        }

        for (float f = spawnStartPoint; f < ChunkCenter.z + _chunkLength / 2;)
        {
            obstacleSpawnPoints.Clear();
            int obstaclesToSpawn = Random.Range(_minObstaclesPerSpawnLocation, _maxObstaclesPerSpawnLocation);
            for (int i = 0; i <= obstaclesToSpawn; i++)
            {
                Obstacle obstacle            = _obstaclePool.GetObstacle();
                Vector3  newObstaclePosition = new Vector3(_obstacleXPosValues[Random.Range(0, _obstacleXPosValues.Length)], _obstacleYPosValues[Random.Range(0, _obstacleYPosValues.Length)], f);
                while (obstacleSpawnPoints.Contains(newObstaclePosition))
                {
                    newObstaclePosition = new Vector3(_obstacleXPosValues[Random.Range(0, _obstacleXPosValues.Length)], _obstacleYPosValues[Random.Range(0, _obstacleYPosValues.Length)], f);
                }
                obstacleSpawnPoints.Add(newObstaclePosition);
                obstacle.transform.position = newObstaclePosition;
                obstacle.gameObject.SetActive(true);
                _obstacles.Add(obstacle);
            }

            f += Random.Range(_obstacleSpawnDistanceMin, _obstacleSpawnDistanceMax);
        }
    }
Exemple #2
0
    // Create new obs
    private IEnumerator SpawnObstacles()
    {
        while (true)
        {
            yield return(new WaitForSeconds(spawnRate));

            // Spawn a new obstacle
            var obstacle = obstaclePool.GetObstacle("Test");
            obstacle.transform.position = transform.TransformPoint(riverBounds.center);

            // Put it at the back (+z) of the river bounding box
            obstacle.transform.Translate(0, 0, riverBounds.extents.z);
        }
    }