[TUTORIAL] Tocando musicas de fundo aleatoriamente diretamente de dentro da pasta Resources.
2 participantes
Página 1 de 1
[TUTORIAL] Tocando musicas de fundo aleatoriamente diretamente de dentro da pasta Resources.
Primeiramente crie uma pasta chamada "Resources" em algum lugar dos arquivos do seu jogo. Agora crie outra dentro chamada "Music" e dentro de Music crie uma chamada "BG" (background).
Jogue todos audios de background nesta pasta "BG".
Depois jogue o script abaixo em um objeto qualquer. O objeto não pode ser destruido senão o som irá parar é claro. O script adiciona um AudioSource então não precisa adicionar um. Apenas jogue o script e pronto.
Os audios serão tocados aleatoriamente. Não é preciso adicionar nem ligar audios no inspector. Todos audios encontrados na pasta serão automaticamente colocados na lista. Favor tenha certeza de que a pasta contem apenas audios e em formatos aceitos pelo Unity.
Vantagens: Não é preciso ligar nada no inspector. Bastando jogar os audios na pasta e pronto.
Cuidados: Poucos audios podem fazer com que as chances de audios tocarem muitas vezes seguidas em pouco tempo sejam grandes.
Jogue todos audios de background nesta pasta "BG".
Depois jogue o script abaixo em um objeto qualquer. O objeto não pode ser destruido senão o som irá parar é claro. O script adiciona um AudioSource então não precisa adicionar um. Apenas jogue o script e pronto.
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class BackgroundMusicPlayer : MonoBehaviour {
Object[] BGMusics; // nossa lista de audios encontrados
void Start () {
BGMusics = Resources.LoadAll ("Music/BG"); // pegando os audios encontrados
PlayRandom(); // manda tocar um audio aleatorio
}
void PlayRandom(){
int i = Random.Range(0, BGMusics.Length); // index sortido
AudioClip m = (AudioClip) BGMusics[i]; // uma referencia ao audioclip sortido
GetComponent<AudioSource>().PlayOneShot(m); // tocamos esse audioclip
Invoke("PlayRandom", m.length); // invocamos o mesmo método depois que se passar o tempo da musica toda. Cuidado, adicionar efeitos nos audios pode aumentar o length deles e bugar o sistema (ficarao 2 audios tocando ao msm tempo)
}
void Reset(){
GetComponent<AudioSource>().playOnAwake = false; // aqui tira o play on awake do audio source
}
}
Os audios serão tocados aleatoriamente. Não é preciso adicionar nem ligar audios no inspector. Todos audios encontrados na pasta serão automaticamente colocados na lista. Favor tenha certeza de que a pasta contem apenas audios e em formatos aceitos pelo Unity.
Vantagens: Não é preciso ligar nada no inspector. Bastando jogar os audios na pasta e pronto.
Cuidados: Poucos audios podem fazer com que as chances de audios tocarem muitas vezes seguidas em pouco tempo sejam grandes.
RenanMSV- Instrutor
- PONTOS : 4485
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: [TUTORIAL] Tocando musicas de fundo aleatoriamente diretamente de dentro da pasta Resources.
Muito bom
jonatan oliveira rocha- Avançado
- PONTOS : 3278
REPUTAÇÃO : 6
Idade : 34
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Acessar nomes de arquivos diretamente da pasta
» Como Pegar o Audio diretamente na Pasta do jogo?
» Adicionar imagens na pasta Resources após geração de apk Android
» [TUTORIAL] Fazer o personagem ir para a direita e para esquerda tocando na tela (ANDROID)!
» tutorial dentro do jogo
» Como Pegar o Audio diretamente na Pasta do jogo?
» Adicionar imagens na pasta Resources após geração de apk Android
» [TUTORIAL] Fazer o personagem ir para a direita e para esquerda tocando na tela (ANDROID)!
» tutorial dentro do jogo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos