[RESOLVIDO] Como instanciar 3 objetos de uma vez mas com um tempo entre cada instancia
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Como instanciar 3 objetos de uma vez mas com um tempo entre cada instancia
Ola eu estou montando um jogo de batalhas de barcos piratas e estou com uma duvida eu fiz um script para os disparos dos canhões mas eles disparam todos de uma vez eu queria saber como faço para colocar uma pause entre cada disparo tipo meu navio dispara 3 balas de canhão de uma vez queria que essas 3 balas fossem instanciadas com uma pausa de tempo entre cada uma delas, se alguém puder me ajudar agradeço esse é o script dos disparos das balas de canhão.
- Código:
private void FireEsquerda ()
{
for (int i = 0; i < m_FireTransformEsquerda.Length; i++) {
// Set the fired flag so only Fire is only called once.
m_Fired = true;
if(m_FireTransformEsquerda[i].activeInHierarchy == true){
// Create an instance of the shell and store a reference to it's rigidbody.
Rigidbody shellInstance =
Instantiate (m_Shell, m_FireTransformEsquerda [i].transform.position, m_FireTransformEsquerda [i].transform.rotation) as Rigidbody;
// Set the shell's velocity to the launch force in the fire position's forward direction.
shellInstance.velocity = m_CurrentLaunchForce * m_FireTransformEsquerda [i].transform.forward;
// Change the clip to the firing clip and play it.
Instantiate (ballParticle, m_FireTransformEsquerda [i].transform.position, m_FireTransformEsquerda [i].transform.rotation);
m_ShootingAudio.clip = m_FireClip;
m_ShootingAudio.Play ();
// Reset the launch force. This is a precaution in case of missing button events.
m_CurrentLaunchForce = m_MinLaunchForce;
}
}
}
360flip- Iniciante
- PONTOS : 3043
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Como instanciar 3 objetos de uma vez mas com um tempo entre cada instancia
Voce pode usar StartCoroutine ja tentou?
Re: [RESOLVIDO] Como instanciar 3 objetos de uma vez mas com um tempo entre cada instancia
não sei utilizar esse componenteCallyde Jr escreveu:Voce pode usar StartCoroutine ja tentou?
360flip- Iniciante
- PONTOS : 3043
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Como instanciar 3 objetos de uma vez mas com um tempo entre cada instancia
Tem uma base ai como fazer
- Código:
StartCoroutine (FireEsquerda ());//Essa funçao chama
IEnumerator FireEsquerda ()//IEnumerator
{
for (int i = 0; i < m_FireTransformEsquerda.Length; i++) {
// Set the fired flag so only Fire is only called once.
m_Fired = true;
if(m_FireTransformEsquerda[i].activeInHierarchy == true){
// Create an instance of the shell and store a reference to it's rigidbody.
Rigidbody shellInstance =
Instantiate (m_Shell, m_FireTransformEsquerda [i].transform.position, m_FireTransformEsquerda [i].transform.rotation) as Rigidbody;
yield return new WaitForSeconds (1.0f);//Tempo voce pode mudar tambem
// Set the shell's velocity to the launch force in the fire position's forward direction.
shellInstance.velocity = m_CurrentLaunchForce * m_FireTransformEsquerda [i].transform.forward;
// Change the clip to the firing clip and play it.
Instantiate (ballParticle, m_FireTransformEsquerda [i].transform.position, m_FireTransformEsquerda [i].transform.rotation);
m_ShootingAudio.clip = m_FireClip;
m_ShootingAudio.Play ();
yield return new WaitForSeconds (1.0f);//Tempo
// Reset the launch force. This is a precaution in case of missing button events.
m_CurrentLaunchForce = m_MinLaunchForce;
}
}
}
Re: [RESOLVIDO] Como instanciar 3 objetos de uma vez mas com um tempo entre cada instancia
Vlw Vou aplicar ao script e ver se funciona Vlw !!!Callyde Jr escreveu:Tem uma base ai como fazer
- Código:
StartCoroutine (FireEsquerda ());//Essa funçao chama
IEnumerator FireEsquerda ()//IEnumerator
{
for (int i = 0; i < m_FireTransformEsquerda.Length; i++) {
// Set the fired flag so only Fire is only called once.
m_Fired = true;
if(m_FireTransformEsquerda[i].activeInHierarchy == true){
// Create an instance of the shell and store a reference to it's rigidbody.
Rigidbody shellInstance =
Instantiate (m_Shell, m_FireTransformEsquerda [i].transform.position, m_FireTransformEsquerda [i].transform.rotation) as Rigidbody;
yield return new WaitForSeconds (1.0f);//Tempo voce pode mudar tambem
// Set the shell's velocity to the launch force in the fire position's forward direction.
shellInstance.velocity = m_CurrentLaunchForce * m_FireTransformEsquerda [i].transform.forward;
// Change the clip to the firing clip and play it.
Instantiate (ballParticle, m_FireTransformEsquerda [i].transform.position, m_FireTransformEsquerda [i].transform.rotation);
m_ShootingAudio.clip = m_FireClip;
m_ShootingAudio.Play ();
yield return new WaitForSeconds (1.0f);//Tempo
// Reset the launch force. This is a precaution in case of missing button events.
m_CurrentLaunchForce = m_MinLaunchForce;
}
}
}
360flip- Iniciante
- PONTOS : 3043
REPUTAÇÃO : 1
Respeito as regras :
Re: [RESOLVIDO] Como instanciar 3 objetos de uma vez mas com um tempo entre cada instancia
Vlw !!! funcionou perfeitamente noix !!Callyde Jr escreveu:Tem uma base ai como fazer
- Código:
StartCoroutine (FireEsquerda ());//Essa funçao chama
IEnumerator FireEsquerda ()//IEnumerator
{
for (int i = 0; i < m_FireTransformEsquerda.Length; i++) {
// Set the fired flag so only Fire is only called once.
m_Fired = true;
if(m_FireTransformEsquerda[i].activeInHierarchy == true){
// Create an instance of the shell and store a reference to it's rigidbody.
Rigidbody shellInstance =
Instantiate (m_Shell, m_FireTransformEsquerda [i].transform.position, m_FireTransformEsquerda [i].transform.rotation) as Rigidbody;
yield return new WaitForSeconds (1.0f);//Tempo voce pode mudar tambem
// Set the shell's velocity to the launch force in the fire position's forward direction.
shellInstance.velocity = m_CurrentLaunchForce * m_FireTransformEsquerda [i].transform.forward;
// Change the clip to the firing clip and play it.
Instantiate (ballParticle, m_FireTransformEsquerda [i].transform.position, m_FireTransformEsquerda [i].transform.rotation);
m_ShootingAudio.clip = m_FireClip;
m_ShootingAudio.Play ();
yield return new WaitForSeconds (1.0f);//Tempo
// Reset the launch force. This is a precaution in case of missing button events.
m_CurrentLaunchForce = m_MinLaunchForce;
}
}
}
360flip- Iniciante
- PONTOS : 3043
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] COMO EXECUTAR FUNÇÃO A CADA PERÍODO DE TEMPO
» Dúvida - como detectar uma colisão entre 2 OUTROS objetos
» [RESOLVIDO] Como Verificar a distancia de varios objs ao mesmo tempo?
» [RESOLVIDO] Como alterar a gravidade conforme o tempo
» [Resolvido]Como faz pra ativar um "objeto" depois de um tempo
» Dúvida - como detectar uma colisão entre 2 OUTROS objetos
» [RESOLVIDO] Como Verificar a distancia de varios objs ao mesmo tempo?
» [RESOLVIDO] Como alterar a gravidade conforme o tempo
» [Resolvido]Como faz pra ativar um "objeto" depois de um tempo
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos