예제 #1
0
        public void SpawnPickup(Pickup pickup)
        {
            var platform = _platforms[Random.Range(0, _platforms.Count)];

            pickup.Place(platform.BaseTransform.position, platform.BaseTransform);
            pickup.Activate();
        }
예제 #2
0
    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();
    }