Воспроизведение случайного звука при каждом запуске - PullRequest
0 голосов
/ 26 июня 2018

У меня есть игра, когда пользователь нажимает на себя вправо или влево, будет звук, такой как oph, ой, Oh No и так далее.Я хочу, чтобы это был случайный звук (случайный выбор) каждый раз.

вот фрагмент кода, в котором мы определяем название звука.В следующем фрагменте hit1 - имя звука, одно из них (как определено в Элементах).Этот код работает хорошо.Код взят из файла «controller.cs»

Примечание. Внутри Unity есть область в _Manager Prefab (_Manager/Audios Manager Script/Music Clips/Elements[Audio Clip, Sound Name, Volume]), в которой указано это имя звука и любое другое.

else 
{
    if (!iFly && !iJump)
    {
        animationManager.animationState = animationManager.TurnRight;
        AudiosManager.instance.PlayingSound("hit1");
    }
}

Я пытался сделать это так, но это не работает, перечисляя оставшиеся имена звуков "hit1","hit2","hit3","hit4" внутри Random (), как это Random("hit1","hit2","hit3","hit4"), надеясь, что это работает.Но, конечно, это не сработало.

Хорошо, вот как теперь выглядит код, который не работает.

else 
{
    if (!iFly && !iJump)
    {
        animationManager.animationState = animationManager.TurnRight;
        AudiosManager.instance.PlayingSound(Random("hit1","hit2","hit3","hit4"));
    }
}

Для пояснения, на самом деле код, ответственный за эту часть, - только этот AudiosManager.instance.PlayingSound("hit1");.Хотя я могу ошибаться.

1 Ответ

0 голосов
/ 26 июня 2018

Решено !
Мне пришлось поставить public string hits; под public class Controller : MonoBehaviour.Как и ниже.

public class Controller : MonoBehaviour {

    public string hits;  

И вот как теперь выглядит код

} else {
            if (!iFly && !iJump){
                string[] hits = { "hit1", "hit2", "hit3", "hit4", "hit5" };  
                animationManager.animationState = animationManager.TurnRight;
                AudiosManager.instance.PlayingSound(this.hits = hits[Mathf.FloorToInt (Random.Range(0,5))]);
            }
        }

Итак, как вы можете видеть, я добавил это string[] hits = { "hit1", "hit2", "hit3", "hit4", "hit5" };, чтобы определить мои строки, любое числоим это будет, и это this.hits = hits[Mathf.FloorToInt (Random.Range(0,5))] для вызова случайной строки каждый раз.

Спасибо всем, кто пытался помочь мне в этом процессе!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...