@gertkeno I did not want to hijack this thread as it’s not mine and already solved. However I am interested in what you said.
Here’s my code:
func get_random_voice_line(index: int) -> AudioStream:
var audio_path: String = "res://assets/sound/dialogue/"
var file_path: String = audio_path + avatars[index] + "/character_selection"
var dir: DirAccess = DirAccess.open(file_path)
if not dir:
return
var filenames: Array[String]
var file_list: PackedStringArray = dir.get_files()
for file_name: String in file_list:
if file_name.ends_with(".import"):
filenames.append(file_name.trim_suffix(".import"))
var sound_file: AudioStream = load(file_path + "/" + filenames.pick_random())
return sound_file
Changed from this:
Summary
func get_random_voice_line(index: int) -> AudioStream:
var audio_path: String = "res://assets/sound/dialogue/"
var file_path: String = audio_path + avatars[index] + "/character_selection"
var dir: DirAccess = DirAccess.open(file_path)
if not dir:
return
var filenames: Array[String]
var file_list: PackedStringArray = dir.get_files()
for file_name: String in file_list:
if file_name.ends_with(".wav"):
filenames.append(file_name)
var sound_file: AudioStream = load(file_path + "/" + filenames.pick_random())
return sound_file
But the ResourceLoader doesn’t use DirAccess. So would you suggest using ResourceLoader to traverse the directory and then DirAccess to get the files? Or convert the whole thing to use ResourceLoader?