protected override void SpawnAll() { var parentPoint = CachedObject; BuildSpawnList(); SgtHelper.BeginRandomSeed(CachedObject.Seed); { var radMin = (double)radiusMin; var radMax = (double)radiusMax; var radRng = radMax - radMin; for (var i = 0; i < count; i++) { var radius = radMin + radRng * Random.value; var angle = Random.Range(0.0f, 360.0f); var tilt = new Vector3(Random.Range(-tiltMax, tiltMax), 0.0f, Random.Range(-tiltMax, tiltMax)); var oblateness = Random.Range(0.0f, oblatenessMax); var position = SgtFloatingOrbit.CalculatePosition(parentPoint, radius, angle, tilt, Vector3.zero, oblateness); var instance = SpawnAt(position, i); var orbit = instance.GetComponent <SgtFloatingOrbit>(); if (orbit == null) { orbit = instance.gameObject.AddComponent <SgtFloatingOrbit>(); } orbit.ParentPoint = parentPoint; orbit.Radius = radius; orbit.Angle = angle; orbit.Oblateness = oblateness; orbit.DegreesPerSecond = 1000.0 / radius; orbit.Tilt = tilt; } } SgtHelper.EndRandomSeed(); }