Added in-dialogue sounds
This commit is contained in:
parent
1fde00e811
commit
10cccc9b70
4 changed files with 24 additions and 5 deletions
|
@ -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
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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--;
|
||||||
|
|
|
@ -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",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue