public void SpawnPickup(Pickup pickup) { var platform = _platforms[Random.Range(0, _platforms.Count)]; pickup.Place(platform.BaseTransform.position, platform.BaseTransform); pickup.Activate(); }
IEnumerator ExplodeRoutine(Column column) { Color spawnColor; Vector3 pos; Spawns spawn; isLive = false; if (type == PickupType.Black) { spawn = Spawns.BlackPickup; } else { spawn = Spawns.SilverPickup; } float size = Mathf.Ceil(transform.localScale.x); for (int x = 0; x < size; x++) { for (int y = 0; y < size; y++) { for (int z = 0; z < size; z++) { pos = new Vector3( transform.position.x - (transform.localScale.x * 0.5f) + ((1 / (size * 2)) * transform.localScale.x) + ((x / size) * transform.localScale.x), transform.position.y - (transform.localScale.y * 0.5f) + ((1 / (size * 2)) * transform.localScale.y) + ((x / size) * transform.localScale.x), transform.position.z - (transform.localScale.z * 0.5f) + ((1 / (size * 2)) * transform.localScale.z) + ((x / size) * transform.localScale.x) ); //spawnColor = Tile.Colors[(x + y + z) % 64]; spawnColor = Color.Lerp(color, Tile.Inverse(Tile.Brighten(color, 0.5f)), (x * y * z) / (size * size * size)); PooledObject obj = World.Spawn.Object(spawn, spawnColor, mass, pos, 0f); if (obj != null) { column.spawns.Add(obj); Pickup pickup = obj.GetComponent <Pickup>(); pickup.Activate(0.4f); //SpawnManager.Pickups.Add(pickup); } _renderer.enabled = !_renderer.enabled; yield return(new WaitForSeconds(Config.SpawnTiming)); } } } _renderer.enabled = true; transform.localScale = new Vector3(1f, 1f, 1f); ReturnToPool(); }