Skip to content
Snippets Groups Projects
Commit b550d4fd authored by Robin Halseth Sandvik's avatar Robin Halseth Sandvik
Browse files

Added AudioService for manaing sound in code.

parent 9bcc2e44
No related branches found
No related tags found
1 merge request!60Upgrades people.
using System.Collections;
using System;
using System.Linq;
using System.Collections.Generic;
using System.Reflection;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEditor;
using BigSock.Item;
namespace BigSock.Service {
/*
Service for handling audio.
*/
public partial class AudioService {
/*
The instance to use.
*/
public static readonly AudioService SINGLETON = new AudioService();
/*
Get a audio of a name.
*/
public AudioClip Get(string name) {
if(_items.TryGetValue(_sanitize(name), out var res)) return res;
return null;
}
}
public partial class AudioService {
private Dictionary<string, AudioClip> _items = new Dictionary<string, AudioClip>();
private System.Random _rnd = new System.Random();
private AudioService() {
_loadItems();
}
/*
Load the items into the dictionary.
Based on: https://stackoverflow.com/a/67670629
*/
private void _loadItems() {
string[] guids = AssetDatabase.FindAssets( "t:AudioClip", new string[] {"Assets/sound"} );
var dict = new Dictionary<string, AudioClip>();
foreach(var guid in guids) {
var path = AssetDatabase.GUIDToAssetPath( guid );
var name = _sanitize(path.Replace(".wav", "").Replace(".mp3", "").Replace("Assets/sound/", ""));
AudioClip go = AssetDatabase.LoadAssetAtPath<AudioClip>( path );
//Debug.Log($"[SpriteService._loadItems()] {name}");
dict[name] = go;
}
_items = dict;
}
private string _sanitize(string name)
=> name.Replace(" ", "").Replace("_", "").ToLower();
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: bace12991ada10e438cef9039856ed10
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment