Buenas noches, necesito una idea por favor:
Estoy haciendo un flipper, bien los Flippers osea las manecillas que golpean la bola, al activarse hacen un ruido, bien.
el ruido va perfecto excepto cuando mantengo el boton de el mouse para retener la bola, el sonido se repite.
He tenido en cuenta la opción de cambiar esto:(script completo mas abajo).
if(Input.GetButton(buttonName))
por esto
if(Input.GetButtonDown(buttonName))
Pero veréis que no es alternativa ya que utilizo Fuerza para moverlos y no funcionan en este caso.
Aqui el script completo:
using UnityEngine;
using System.Collections;
public class ApplyForceAtOffet : MonoBehaviour {
public float force = 100.0f;
public Vector3 forceDirection = Vector3.forward;
public string buttonName = "Fire1";
public Vector3 offset;
//public AudioClip flipersound;
AudioSource audio;
public AudioClip flipersound;
private bool detener;
void Update ()
{
if(Input.GetButton(buttonName))
{
audio = GetComponent<AudioSource>();
if (!audio.isPlaying)
fliper ();
GetComponent<Rigidbody>().AddForceAtPosition(forceDirection.normalized*force,transform.position+offset);
}
else
{
GetComponent<Rigidbody>().AddForceAtPosition(forceDirection.normalized*-force,transform.position+offset);
}
}
void fliper()
{
detener = true;
audio.clip = flipersound;
audio.loop = false;
//audio.PlayOneShot(flipersound, 0.7F);
audio.Play();
}
}
Gracias de antemano.
Falta un el if del primer RigidBody xD, no cambies el get button, añade otro antes del GetMouseButton
void Update ()
{
audio = GetComponent<AudioSource>();
if(input.GetMouseButtonDown(buttonName) && !audio.isPlaying){
Fliper();
}
if(Input.GetButton(buttonName))
{
GetComponent<Rigidbody>().AddForceAtPosition(forceDirection.normalized*force,transform.position+offset);
}
else
{
GetComponent<Rigidbody>().AddForceAtPosition(forceDirection.normalized*-force,transform.position+offset);
}
}
Cita de: hammer date=1470733148Falta un el if del primer RigidBody xD, no cambies el get button, añade otro antes del GetMouseButton
void Update ()
{
audio = GetComponent<AudioSource>();
if(input.GetMouseButtonDown(buttonName) && !audio.isPlaying){
Fliper();
}
if(Input.GetButton(buttonName))
{
GetComponent<Rigidbody>().AddForceAtPosition(forceDirection.normalized*force,transform.position+offset);
}
else
{
GetComponent<Rigidbody>().AddForceAtPosition(forceDirection.normalized*-force,transform.position+offset);
}
}
Opppps que tonto soy!!!, muchas gracias hammer!!
Saludos