Пятница, 29 Марта 2024, 10:17

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Random для AudioClip[]
Random для AudioClip[]
labinzevvДата: Суббота, 22 Мая 2021, 22:03 | Сообщение # 1
частый гость
Сейчас нет на сайте
Привет народ! Нужна Ваша помощь.
Есть скрипт:
Код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class soundsMusic : MonoBehaviour
{
    public AudioSource myMusic;
    public AudioClip[] musicMassive;
    public List<int> intList = new List<int>();
    int randomNumber;

    private AudioClip GetRandomClip()
    {
        intList = new List<int>(new int[musicMassive.Length]);

        for (int i = 0; i < musicMassive.Length; i++)
        {
            randomNumber = Random.Range(0, (musicMassive.Length) + 1);
            while (intList.Contains(randomNumber))
            {
                randomNumber = Random.Range(0, (musicMassive.Length) + 1);
            }
            intList[i] = randomNumber;
            musicMassive[i] = musicMassive[(intList[i]) - 1];
        }

        return musicMassive[Random.Range(0, (intList.Count))];
    }

    void Update()
    {
        if (!myMusic.isPlaying)
        {
            myMusic.clip = GetRandomClip();
            myMusic.Play();
        }
    }
}

в public List<int> intList = new List<int>(); генерируются рандомные числа (здесь всё работает). Вопрос в следующем: Как приравнять public AudioClip[] musicMassive к public List<int> intList = new List<int>();? Чтобы public AudioClip[] musicMassive приравнивал аудиотреки к рандомным числам и воспроизводил в том же порядке? Уже все варианты перепробовал. Не работает вот эта строка: musicMassive[i] = musicMassive[(intList[i]) - 1];
Все поля musicMassive[i] заполняются одним и тем же треком, хотя в public List<int> intList числа продолжают рандомно меняться.
Заранее благодарю за помощь:)


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
drcrackДата: Суббота, 22 Мая 2021, 23:08 | Сообщение # 2
старожил
Сейчас нет на сайте
Что ты вообще пытаешься сделать? Рандом без повторов?
labinzevvДата: Суббота, 22 Мая 2021, 23:20 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата drcrack ()
Что ты вообще пытаешься сделать? Рандом без повторов?

Да. Не догоню как AudioClip[] приравнять к public List<int>


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
drcrackДата: Суббота, 22 Мая 2021, 23:29 | Сообщение # 4
старожил
Сейчас нет на сайте
Это не нужно, как и вообще сам List
Код

int lastIndex;
AudioClip GetRandomClip() {
  lastIndex = (lastIndex + Random.Range(1, musicMassive.Length - 1)) % musicMassive.Length;
  return musicMassive[lastIndex];
}


Сообщение отредактировал drcrack - Суббота, 22 Мая 2021, 23:31
labinzevvДата: Суббота, 22 Мая 2021, 23:48 | Сообщение # 5
частый гость
Сейчас нет на сайте
Цитата drcrack ()
Это не нужно, как и вообще сам List
Код

int lastIndex;
AudioClip GetRandomClip() {
  lastIndex = (lastIndex + Random.Range(1, musicMassive.Length - 1)) % musicMassive.Length;
  return musicMassive[lastIndex];
}

Во! Спасибо, то что нужно! А то уже голову себе сломал об этот рандом...


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Random для AudioClip[]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг