1max1 писал(а):В папке Resources/Sounds должны лежать звуки.Синтаксис:Используется csharpusing UnityEngine;
class NewBehaviourScript : MonoBehaviour
{
static AudioClip[] clips;
void Awake()
{
if (clips == null)
{
clips = Resources.LoadAll<AudioClip>("Sounds");
}
}
void OnCollisionEnter(Collision collision)
{
var go = new GameObject("Sound");
var _as = go.AddComponent<AudioSource>();
_as.clip = clips[Random.Range(0, clips.Length)];
Destroy(go, _as.clip.length);
}
}
1max1 писал(а):Можно, но тогда делай синглтон со своими префабами.
1max1 писал(а):Создаешь пустышку на сцене, на нее кидаешь скрипт:
Псевдокод:Синтаксис:Используется csharpclass singleton : monobeh
public static AudioClip[] clips;
[SerializeField] AudioClip[] _clips;
//awake
dontdestroyonload(gameObject);
clips = _clips;
Метод предыдущего скрипта будет такой:
Синтаксис:Используется csharpvoid OnCollisionEnter(Collision collision)
{
var go = new GameObject("Sound");
var _as = go.AddComponent<AudioSource>();
_as.clip = singleton.clips[Random.Range(0, singleton.clips.Length)]; // изменения тут
Destroy(go, _as.clip.length);
}
1max1 писал(а):Создаешь пустышку на сцене, на нее кидаешь скрипт:
Псевдокод:Синтаксис:Используется csharpclass singleton : monobeh
public static AudioClip[] clips;
[SerializeField] AudioClip[] _clips;
//awake
dontdestroyonload(gameObject);
clips = _clips;
Метод предыдущего скрипта будет такой:
Синтаксис:Используется csharpvoid OnCollisionEnter(Collision collision)
{
var go = new GameObject("Sound");
var _as = go.AddComponent<AudioSource>();
_as.clip = singleton.clips[Random.Range(0, singleton.clips.Length)]; // изменения тут
Destroy(go, _as.clip.length);
}
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13