в моем проекте Я хочу, чтобы звук играл, а затем для активного состояния объектов, которое должно быть установлено на false, в настоящий момент оба происходят одновременно, поэтому звук не воспроизводится , Если я сохраню активное состояние как истинное, я услышу звук.Играйте и ждите звука, чтобы закончить игру
Как я могу убедиться, что звук заканчивается до того, как установленное активное состояние переключено на ложное, любая помощь или совет оценены.
Вот мой код;
void OnTriggerEnter(Collider other)
{
if (other.tag == "Pick Up")
{
if (!isPlayed) {
source.Play();
isPlayed = true;
}
}
if (other.gameObject.CompareTag ("Pick Up"))
{
other.gameObject.SetActive (true);
count = count + 1;
SetCountText();
}
}
Источник звука имеет поле 'isPlaying', которое вы можете проверить. Вы попробовали это? –
Да, это случай, когда вам нужно подождать в сопрограмме на .isPlaying - точно так же, как с анимацией. – Fattie
@JoeBlow он должен сделать это в сопрограмме или иметь много bool в функции обновления. coroutine - это способ сделать это. – Programmer