Пример #1
0
        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();
        }