Como sincronizar o audio com o movimento de um objeto ???
2 participantes
Página 1 de 1
Como sincronizar o audio com o movimento de um objeto ???
To fazendo um jogo simples ,uma roleta com opções ,a pessoa gira a roleta, e o que cair ela faz...
porém a roleta gira com um valor aleatório...funciona assim :
Enquanto o usuario mantiver o ("R") pressionado ,com mais força a roleta irá girar...
tenho um audio da roleta girando (aquele barulho do ponteiro batendo no canto da roleta...)
Resumindo : Preciso sincronizar o audio conforme a roleta gira...pois como é aleatório ,não sei quando começa e quando terminar o audio (e não é um audio em loop) ele começa mais forte (a roleta girando mais forte) e vai ficando mais fraco (a roleta perdendo velocidade)....
porém a roleta gira com um valor aleatório...funciona assim :
Enquanto o usuario mantiver o ("R") pressionado ,com mais força a roleta irá girar...
tenho um audio da roleta girando (aquele barulho do ponteiro batendo no canto da roleta...)
Resumindo : Preciso sincronizar o audio conforme a roleta gira...pois como é aleatório ,não sei quando começa e quando terminar o audio (e não é um audio em loop) ele começa mais forte (a roleta girando mais forte) e vai ficando mais fraco (a roleta perdendo velocidade)....
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(AudioSource))]
public class roleta : MonoBehaviour {
public AudioSource playando;
private HingeJoint2D hinge;
// Use this for initialization
void Start () {
hinge = GetComponent<HingeJoint2D>();
AudioSource audio = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown ("r"))
{
hinge.useMotor = true;
playando.Play ();
}
if (Input.GetKeyUp ("r"))
{
hinge.useMotor = false;
}
}
}
Edw223- Membro
- PONTOS : 2918
REPUTAÇÃO : 9
Idade : 27
Áreas de atuação : Programação em C#(C-Sharp)
Respeito as regras :
Re: Como sincronizar o audio com o movimento de um objeto ???
Simples, ao invés de usar um áudio com tempo predefinido, por que você não corta o som de apenas uma batida, e faz ele tocar sempre que um ponto fixo colidir com box colliders espalhados pela roleta?
Ficaria assim:
Os quadrados azuis seriam os box colliders, e o vermelho o ponto fixo, conforme a roleta gira, o ponto vermelho percebe a colisão e toca o som no momento certo.
Com isso a velocidade da roleta e o som ficam perfeitamente sincronizados.
#edit Rachei o bico aqui com o Playando kkkkkkkk
Ficaria assim:
Os quadrados azuis seriam os box colliders, e o vermelho o ponto fixo, conforme a roleta gira, o ponto vermelho percebe a colisão e toca o som no momento certo.
Com isso a velocidade da roleta e o som ficam perfeitamente sincronizados.
#edit Rachei o bico aqui com o Playando kkkkkkkk
Isabela- Avançado
- PONTOS : 2838
REPUTAÇÃO : 260
Idade : 24
Respeito as regras :
Re: Como sincronizar o audio com o movimento de um objeto ???
Eu pensei em fazer isso ..porém ,será que não pesa em processamento ? e que vai ser bastante colisão pra calcular
P.S : eu escrevo umas variaveis xingando as vezes kskskskk e faço uns comentarios tipo (//Mano,eu nem sei o que eu fiz,mas funcionou essa função aqui...)
P.S : eu escrevo umas variaveis xingando as vezes kskskskk e faço uns comentarios tipo (//Mano,eu nem sei o que eu fiz,mas funcionou essa função aqui...)
Edw223- Membro
- PONTOS : 2918
REPUTAÇÃO : 9
Idade : 27
Áreas de atuação : Programação em C#(C-Sharp)
Respeito as regras :
Re: Como sincronizar o audio com o movimento de um objeto ???
Não haverão muitas colisões pra calcular... pois apenas a bola e um dos colliders estarão calculando física/contato simultaneamente. E ainda assim, se quiser reduzir a quantidade de coisas processando, você pode deixar um collider a cada dois slots da roleta, ninguém irá notar a diferença.
Não precisa usar getcomponent nem nada do tipo, pois como só ele irá colidir com esse objeto em questão, você pode usar o OnTriggerEnter direto.
Boa sorte!
#offtopic eu também faço essas loucuras com nomes de variáveis e métodos, as vezes gasto mais tempo pensando num nome bom que codificando de fato kkk
#edit
Link sobre colisões baseadas em layers
Não precisa usar getcomponent nem nada do tipo, pois como só ele irá colidir com esse objeto em questão, você pode usar o OnTriggerEnter direto.
- Código:
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour{
void OnTriggerEnter(Collider other){
//Tocar som;
}
}
Boa sorte!
#offtopic eu também faço essas loucuras com nomes de variáveis e métodos, as vezes gasto mais tempo pensando num nome bom que codificando de fato kkk
#edit
Link sobre colisões baseadas em layers
Última edição por Isabela em Qua Jul 04, 2018 4:03 pm, editado 2 vez(es)
Isabela- Avançado
- PONTOS : 2838
REPUTAÇÃO : 260
Idade : 24
Respeito as regras :
Edw223- Membro
- PONTOS : 2918
REPUTAÇÃO : 9
Idade : 27
Áreas de atuação : Programação em C#(C-Sharp)
Respeito as regras :
Tópicos semelhantes
» Movimento automático de um objeto
» movimento do porsonagen junto com objeto
» Porque meu aúdio não funciona na colisao do player com o objeto?
» COMO FAÇO PARA UM OBJETO EM MOVIMENTO NAO ATRAVESSAR OUTRO
» Como verificar se o objeto esta em movimento?
» movimento do porsonagen junto com objeto
» Porque meu aúdio não funciona na colisao do player com o objeto?
» COMO FAÇO PARA UM OBJETO EM MOVIMENTO NAO ATRAVESSAR OUTRO
» Como verificar se o objeto esta em movimento?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos