private void GenerateOrbitalLayer(int depth) { List <Orbital> orbits = new List <Orbital>(); orbitLayers[depth] = orbits; OrbitalRandomRanges param = parameters[depth]; int nbOrbits = UnityEngine.Random.Range(param.MinOrbitals, param.MaxOrbitals + 1); totalOrbitsGenerated += nbOrbits; while (totalOrbitsGenerated > maxOrbitals) { nbOrbits--; totalOrbitsGenerated--; } for (int i = 0; i < nbOrbits; i++) { Transform centerOfGravity; if (depth == 0) { centerOfGravity = transform; } else { List <Orbital> previousLayer = orbitLayers[depth - 1]; centerOfGravity = previousLayer[Random.Range(0, previousLayer.Count)].transform; } //Generate an Orbit of that Layer Orbital orbit = Instantiate(orbitPrefab, centerOfGravity).GetComponent <Orbital>(); orbit.InitializeOrbital( centerOfGravity, Random.Range(param.MinSpeed, param.MaxSpeed), Random.Range(param.MinRadius, param.MaxRadius), (Random.Range(0f, 1f) < param.ClockwiseProbability), Random.Range(param.MinSize, param.MaxSize)); orbit.SetColor(orbitColors[Random.Range(0, orbitColors.Count)]); bool hasTrail = (Random.Range(0f, 1f) < param.TrailsProbability); if (hasTrail) { TrailSpawner spawner = orbit.gameObject.AddComponent <TrailSpawner>(); spawner.InitializeTrail( trailPrefab, Random.Range(param.TParam.MinSpawnTime, param.TParam.MaxSpawnTime), Random.Range(param.TParam.MinFadingTime, param.TParam.MaxFadingTime), trailColors[Random.Range(0, trailColors.Count)], Random.Range(param.TParam.MinSize, param.TParam.MaxSize) ); } orbits.Add(orbit); } }
private void ClearOldTrail() { if (currSpawner == null) { return; } Destroy(currSpawner.gameObject); currSpawner = null; }
private void StartTrail(RaycastHit hit) { currSpawner = Instantiate(prefab, hit.point, Quaternion.identity, hit.transform); animate.SetValue(true); wasAnimating = true; }
// Use this for initialization void Awake() { MAX_VELOCITY_Z = 4; MAX_VELOCITY_X = 3; rigidBody = GetComponent<Rigidbody>(); takingInput = false; sprite = GetComponent<SpriteRenderer>(); scoreTimer = GameObject.Find("Score").GetComponent<Score>(); dasher = gameObject.GetComponent<Dash>(); dasher.init(rigidBody); tSpawner = GetComponent<TrailSpawner> (); tSpawner.init(.15f, "Prefabs/Trail"); ballPop = gameObject.GetComponent<AudioSource>(); }