- Home /
Having trouble randomizing spawns on Tanks! Networked from asset store
Hello,
I'm trying to learn Unity networking and am using the Tanks! Networked version from the asset store to do that. I added additional spawn points to the scene but im having trouble getting them to work properly when randomly assigned; more than one tank may spawn at the assigned location, and other ways I've tried to do this have resulted in the non-local tanks either not being moved to the assigned respawn or all tanks switch between different spawns for the first 2 seconds of the game. See the code I wrote below, which is just a snippet of the GameManager script (as I have left the vast majority of it unmodified). Suggestions welcome to this Unity newb!
private IEnumerator ClientRoundStartingFade()
{
float elapsedTime = 0.0f;
float wait = m_StartDelay - 0.5f;
yield return null;
ResetAllTanks();
while (elapsedTime < wait)
{
if(m_RoundNumber == 1)
m_FadingScreen.alpha = 1.0f - (elapsedTime / wait);
else
m_EndRoundScreen.alpha = 1.0f - (elapsedTime / wait);
elapsedTime += Time.deltaTime;
yield return null;
}
}
// This function is used to turn all the tanks back on and reset their positions and properties.
private void ResetAllTanks()
{
RandomizeSpawns();
for (int i = 0; i < m_Tanks.Count; i++)
{
m_Tanks[i].m_TankSpawn = m_SpawnPoint[m_Tanks[i].m_Setup.m_PlayerNumber];
m_Tanks[i].Reset();
}
}
private void RandomizeSpawns()
{
List<Transform> availableSpawns = new List<Transform>();
for (int i = 0; i < m_SpawnPoint.Length; i++)
availableSpawns.Add(m_SpawnPoint[i]);
for (int i = 0; i < m_SpawnPoint.Length; i++)
{
int randomSpawn = Random.Range(0, availableSpawns.Count);
m_SpawnPoint[i] = availableSpawns[randomSpawn];
m_SpawnPoint[i].rotation = Quaternion.Euler(0f, Random.Range(0f, 360f), 0f);
availableSpawns.RemoveAt(randomSpawn);
}
}
Your answer
Follow this Question
Related Questions
Dices over Network 1 Answer
[UNET] Dynamically position NetworkStartPosition Gameobjects 2 Answers
Quaternion.identity problem at random spawn 1 Answer
Random crash for client with UNET 2 Answers
NetworkSpawnpoint not working 0 Answers