protected override void spawnEnemies() { // TweenProperties enterPath = new SingleTween ("8_enter", enterDuration); TweenProperties cruisePath = new SingleTween("8_cruise", cruiseDuration, cruiseDelay); TweenProperties cruisePathRev = cruisePath.Clone().Reverse(); for (int i = 0; i < enemiesToSpawn; i++) { float yOffset = -i * enemyDistance; int enterPathIndex = ((i % 3) + 1); float enterDelay = enterMaxDelay * Random.value; TweenProperties preEnterDelay = new DelayTween(enterDelay); TweenProperties enter = new SingleTween("8_enter" + enterPathIndex, enterDuration).OffsetByY(yOffset); TweenProperties postEnterDelay = new DelayTween(enterMaxDelay - enterDelay); TweenProperties preCruiseDelay = new DelayTween((enemiesToSpawn - i) * cruiseDuration); TweenProperties postCruiseDlay = new DelayTween(cruiseDuration * i); TweenProperties cruise = cruisePath.Clone().OffsetByY(yOffset); TweenProperties cruiseRev = cruisePathRev.Clone().OffsetByY(yOffset); TweenProperties loop = new LoopTween(preCruiseDelay, cruise, postCruiseDlay, postCruiseDlay, cruiseRev, preCruiseDelay); spawnEnemy(EnemyObjectPool.type_enemy2, preEnterDelay, enter, postEnterDelay, loop); } }
override protected void spawnEnemies() { TweenProperties enter = new SingleTween("simpleEnter", enterDuration); TweenProperties cruiseUp = new LoopTween(LoopTween.Loop.reverse, new SingleTween("4_cruiseUp", cruiseDuration, cruiseDelay)); TweenProperties cruiseDown = new LoopTween(LoopTween.Loop.reverse, new SingleTween("4_cruiseDown", cruiseDuration, cruiseDelay)); for (int i = 1; i <= 4; i++) { TweenProperties divide = new SingleTween("4_divide" + i, divideDuration); //first two enemies use cruiseUp tween TweenProperties cruise = (i <= 2) ? cruiseUp : cruiseDown; //second and third are translated down by cruiseOffset if (i % 2 == 0) { cruise = cruise.Clone().OffsetByY(-cruiseOffset); } spawnEnemy(EnemyObjectPool.type_enemy1, enter, divide, cruise); } }