Estou com problemas para ativar um som quando giro uma estátua. Tenho que segurar a tecla control e clicar no objeto para fazê-lo girar. O som ativa corretamente e na maioria das vezes ele desliga, mas às vezes ele continua tocando e nunca desliga.
KeyCode pickUpKey = KeyCode.LeftControl;
float rotationSpeed = 0.5f;
AudioSource idolMoving;
void Awake()
{
idolMoving = GetComponent<AudioSource>();
}
void OnMouseDrag()
{
float yAxisRotation = Input.GetAxis("Mouse X") * rotationSpeed;
transform.Rotate(Vector3.up, yAxisRotation, Space.Self);
if (Input.GetAxis("Mouse X") != 0 && Input.GetKey(pickUpKey))
{
idolMoving.enabled = true;
}
else
{
idolMoving.enabled = false;
}
}
Isso aconteceu com mais alguém ou sabe como consertar? Obrigado antecipadamente.
No momento em que o usuário solta o mouse, o
OnMouseDrag
não é mais chamado. Então, se o último quadro antes do usuário soltar o botão do mouse coincidir com sua condição, o som pode permanecer habilitado. Isso acontece se o usuário soltar o botão do mouse antes de soltar a tecla control enquanto move o mouse.Para ter certeza, eu simplesmente adicionaria um
Esta função funcionará somente quando o mouse estiver no colisor de objetos.
Pode ser que o valor x do seu mouse seja zero. Tente com o valor delta.