void populate() { m_populateRetry = true; var dx = new UniformIntDistribution(m_region.min.x, m_region.max.x); var dy = new UniformIntDistribution(m_region.min.y, m_region.max.y); var gen = new StaticRandomGenerator <DefaultRandomGenerator>(); var x = dx.Next(gen); var y = dy.Next(gen); if (m_snake != null && m_snake.haveNode(x, y)) { return; } if (!m_populatableZone.Contains(TilemapInfos.instance.tileID(x, y))) { return; } var obj = Instantiate(m_powerupPrefab, new Vector3(x, y, -0.5f), Quaternion.identity); m_currentPowerup = obj.GetComponent <SnakePowerupLogic>(); m_populateRetry = false; }
void collisionPowerup(SnakePowerupLogic p) { if (p == null || m_dead) { return; } m_pacman.speed = m_powerupSpeed; Event <PlaySoundEvent> .Broadcast(new PlaySoundEvent(m_eatPowerupClip)); Destroy(p.gameObject); DOVirtual.DelayedCall(m_powerupDuration, () => m_pacman.speed = m_baseSpeed); }