Hello all, I am creating a level in unity for a uni assignment; I followed this 3part tutorial a few months back: http://www.youtube.com/watch?v=1C9zbTRCWoM and got it working. The problem was when I tried converting it to a C# script so that I could use it with the PhotonNetwork.
It is working for the most part; there are no errors but for some reason the spawn times are off and all enemies after the first spawn faster than the random.range(yieldTimeMin, yieldTimeMax)
which is between 1-3 seconds.
I will post my JavaScript code and also my C# code(i'm not used to using for loops and yields in C# and was told something about invoke repeating would be a good idea too so if that helps then I'd love to know how I would word it into the script.
Thanks!
#pragma strict
//This Script is dealing with all of the enemy spawning such as how often, where, wave numbers etc.
//It is placed onto the object that holds all of the spawnpoints in the game (Holder_EnemySpawnPoints).
//@HideInInspector to hide the variable on the next line from the Inspector.
var enemySpawnPoints : Transform[];
var enemyPrefabs : GameObject[];
var yieldTimeMin : float = 1;
var yieldTimeMax : float = 3;
var spawnXOffsetMin : float = 0;
var spawnXOffsetMax : float = 0;
var spawnZOffsetMin : float = 0;
var spawnZOffsetMax : float = 0;
var enemyCounter : int = 0;
var startingSpawnNumber : int = 4;
var isSpawning : boolean = false;
var waveNumber : int;
function SpawnEnemies(wave : int)
{
var spawnNum = (startingSpawnNumber + 3 * (waveNumber - 1));
isSpawning = true;
for(var i = 0; i < spawnNum; i++)
{
yield WaitForSeconds(Random.Range(yieldTimeMin, yieldTimeMax));
var spwnObj : GameObject = enemyPrefabs[Random.Range(0, enemyPrefabs.Length)];
var spwnPos : Transform = enemySpawnPoints[Random.Range(0, enemySpawnPoints.Length)];
Instantiate(spwnObj, spwnPos.position + Vector3(Random.Range(spawnXOffsetMin, spawnXOffsetMax), 0, Random.Range(spawnZOffsetMin, spawnZOffsetMax)), spwnPos.rotation);
enemyCounter++;
}
isSpawning = false;
}
function UpdateWave()
{
waveNumber++;
SpawnEnemies(waveNumber);
}
function Start()
{
waveNumber = 1;
SpawnEnemies(waveNumber);
}
function Update()
{
if(enemyCounter == 0 && !isSpawning)
{
UpdateWave();
}
}
↧