Beispiel #1
0
    public Vector3 GetRandomSpawnPosition()
    {
        if (spawnPoints != null)
        {
            bool    foundSpawner     = false;
            Vector3 newStartPosition = new Vector3();
            float   timeOut          = Time.time + 2f;

            while (!foundSpawner)

            {
                NetworkStartPosition startPoint = spawnPoints[Random.Range(0, spawnPoints.Length)];
                SpawnPoint           spawnPoint = startPoint.GetComponent <SpawnPoint>();
                if (spawnPoint.isOcupied == false)
                {
                    newStartPosition = startPoint.transform.position;
                    foundSpawner     = true;
                }

                if (Time.time > timeOut)
                {
                    foundSpawner     = true;
                    newStartPosition = originalPosition;
                }
            }

            return(newStartPosition);
        }

        return(originalPosition);
    }
Beispiel #2
0
    private Vector3 GetRandomSpawnPoint()
    {
        if (spawnPoints != null)
        {
            if (spawnPoints.Length > 0)
            {
                bool    isFreeSpawner = false;
                Vector3 newStartPos   = originalPosition;

                float timeOut = Time.time + 2f;

                while (!isFreeSpawner && Time.time < timeOut)
                {
                    NetworkStartPosition startPoint = spawnPoints[Random.Range(0, spawnPoints.Length)];
                    SpawnPoint           spawnPoint = startPoint.GetComponent <SpawnPoint>();

                    if (spawnPoint.IsOccupied == false)
                    {
                        isFreeSpawner = true;
                        newStartPos   = startPoint.transform.position;
                    }
                }
                return(newStartPos);
            }
        }
        return(originalPosition);
    }