Added in-dialogue sounds

This commit is contained in:
Gerard Gascón 2022-09-22 13:52:08 +02:00 committed by GitHub
parent 1fde00e811
commit 10cccc9b70
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 5 deletions

View file

@ -12,7 +12,6 @@ This package will be updated once I find another useful tool or someone suggest
- Basic menu with **music and SFX sliders** as well as **resolution and quality dropdowns.** - Basic menu with **music and SFX sliders** as well as **resolution and quality dropdowns.**
- An **object pooler** with the ability to create pools with an undetermined size. - An **object pooler** with the ability to create pools with an undetermined size.
- A basic **scene manager** with a loading screen with progress bar. - A basic **scene manager** with a loading screen with progress bar.
- A simple **timer** that is displayed inside a TextMeshPro object.
All of that comes with some editor menu items for creating all of that as fast as possible. All of that comes with some editor menu items for creating all of that as fast as possible.
@ -102,7 +101,6 @@ Text commands:
<p:[tiny,short,normal,long,read]> --> Pauses during a period of time <p:[tiny,short,normal,long,read]> --> Pauses during a period of time
<anim:[wobble,wave,rainbow,shake]></anim> --> Reproduces an animation <anim:[wobble,wave,rainbow,shake]></anim> --> Reproduces an animation
<sp:number></sp> --> Changes reveal speed <sp:number></sp> --> Changes reveal speed
<snd:soundname> --> Plays a sound from the Audio Manager
``` ```
### SceneManager ### SceneManager

View file

@ -11,6 +11,8 @@ namespace SimpleTools.DialogueSystem {
const string REMAINDER_REGEX = "(.*?((?=>)|(/|$)))"; const string REMAINDER_REGEX = "(.*?((?=>)|(/|$)))";
const string PAUSE_REGEX_STRING = "<p:(?<pause>" + REMAINDER_REGEX + ")>"; const string PAUSE_REGEX_STRING = "<p:(?<pause>" + REMAINDER_REGEX + ")>";
static readonly Regex pauseRegex = new Regex(PAUSE_REGEX_STRING); static readonly Regex pauseRegex = new Regex(PAUSE_REGEX_STRING);
const string SOUND_REGEX_STRING = "<snd:(?<sound>" + REMAINDER_REGEX + ")>";
static readonly Regex soundRegex = new Regex(SOUND_REGEX_STRING);
const string SPEED_REGEX_STRING = "<sp:(?<speed>" + REMAINDER_REGEX + ")>"; const string SPEED_REGEX_STRING = "<sp:(?<speed>" + REMAINDER_REGEX + ")>";
static readonly Regex speedRegex = new Regex(SPEED_REGEX_STRING); static readonly Regex speedRegex = new Regex(SPEED_REGEX_STRING);
const string ANIM_START_REGEX_STRING = "<anim:(?<anim>" + REMAINDER_REGEX + ")>"; const string ANIM_START_REGEX_STRING = "<anim:(?<anim>" + REMAINDER_REGEX + ")>";
@ -31,6 +33,7 @@ namespace SimpleTools.DialogueSystem {
processedMessage = message; processedMessage = message;
processedMessage = HandlePauseTags(processedMessage, result); processedMessage = HandlePauseTags(processedMessage, result);
processedMessage = HandleSoundTags(processedMessage, result);
processedMessage = HandleSpeedTags(processedMessage, result); processedMessage = HandleSpeedTags(processedMessage, result);
processedMessage = HandleAnimStartTags(processedMessage, result); processedMessage = HandleAnimStartTags(processedMessage, result);
processedMessage = HandleAnimEndTags(processedMessage, result); processedMessage = HandleAnimEndTags(processedMessage, result);
@ -96,6 +99,20 @@ namespace SimpleTools.DialogueSystem {
processedMessage = Regex.Replace(processedMessage, PAUSE_REGEX_STRING, ""); processedMessage = Regex.Replace(processedMessage, PAUSE_REGEX_STRING, "");
return processedMessage; return processedMessage;
} }
static string HandleSoundTags(string processedMessage, List<DialogueCommand> result) {
MatchCollection soundMatches = soundRegex.Matches(processedMessage);
foreach (Match match in soundMatches) {
string val = match.Groups["sound"].Value;
string soundName = val;
result.Add(new DialogueCommand {
position = VisibleCharactersUpToIndex(processedMessage, match.Index),
type = DialogueCommandType.Sound,
stringValue = soundName
});
}
processedMessage = Regex.Replace(processedMessage, SOUND_REGEX_STRING, "");
return processedMessage;
}
static TextAnimationType GetTextAnimationType(string stringVal) { static TextAnimationType GetTextAnimationType(string stringVal) {
TextAnimationType result; TextAnimationType result;
@ -139,7 +156,8 @@ namespace SimpleTools.DialogueSystem {
Pause, Pause,
TextSpeedChange, TextSpeedChange,
AnimStart, AnimStart,
AnimEnd AnimEnd,
Sound
} }
public enum TextAnimationType { public enum TextAnimationType {

View file

@ -134,6 +134,9 @@ namespace SimpleTools.DialogueSystem {
case DialogueCommandType.TextSpeedChange: case DialogueCommandType.TextSpeedChange:
secondsPerCharacter = 1f / command.floatValue; secondsPerCharacter = 1f / command.floatValue;
break; break;
case DialogueCommandType.Sound:
AudioManager.AudioManager.instance.PlayOneShot(command.stringValue);
break;
} }
commands.RemoveAt(i); commands.RemoveAt(i);
i--; i--;

View file

@ -1,6 +1,6 @@
{ {
"name": "com.geri.simpletools", "name": "com.geri.simpletools",
"version": "1.2.1", "version": "1.2.2",
"displayName": "Simple Tools", "displayName": "Simple Tools",
"description": "This package contains simple tools to use in your project.", "description": "This package contains simple tools to use in your project.",
"unity": "2018.4", "unity": "2018.4",