Browse Source

Added ability to set say dialog per character - usefull if you want to have separate say dialogs for each character

master
FeniXb3 9 years ago
parent
commit
583f656135
  1. 4
      Assets/Fungus/Narrative/Editor/CharacterEditor.cs
  2. 3
      Assets/Fungus/Narrative/Scripts/Character.cs
  3. 5
      Assets/Fungus/Narrative/Scripts/Commands/Say.cs

4
Assets/Fungus/Narrative/Editor/CharacterEditor.cs

@ -16,6 +16,7 @@ namespace Fungus
protected SerializedProperty portraitsProp; protected SerializedProperty portraitsProp;
protected SerializedProperty portraitsFaceProp; protected SerializedProperty portraitsFaceProp;
protected SerializedProperty descriptionProp; protected SerializedProperty descriptionProp;
protected SerializedProperty setSayDialogProp;
protected virtual void OnEnable() protected virtual void OnEnable()
{ {
@ -25,6 +26,7 @@ namespace Fungus
portraitsProp = serializedObject.FindProperty ("portraits"); portraitsProp = serializedObject.FindProperty ("portraits");
portraitsFaceProp = serializedObject.FindProperty ("portraitsFace"); portraitsFaceProp = serializedObject.FindProperty ("portraitsFace");
descriptionProp = serializedObject.FindProperty ("description"); descriptionProp = serializedObject.FindProperty ("description");
setSayDialogProp = serializedObject.FindProperty("setSayDialog");
} }
public override void OnInspectorGUI() public override void OnInspectorGUI()
@ -36,7 +38,9 @@ namespace Fungus
EditorGUILayout.PropertyField(nameTextProp, new GUIContent("Name Text", "Name of the character display in the dialog")); EditorGUILayout.PropertyField(nameTextProp, new GUIContent("Name Text", "Name of the character display in the dialog"));
EditorGUILayout.PropertyField(nameColorProp, new GUIContent("Name Color", "Color of name text display in the dialog")); EditorGUILayout.PropertyField(nameColorProp, new GUIContent("Name Color", "Color of name text display in the dialog"));
EditorGUILayout.PropertyField(soundEffectProp, new GUIContent("Sound Effect", "Sound to play when the character is talking. Overrides the setting in the Dialog.")); EditorGUILayout.PropertyField(soundEffectProp, new GUIContent("Sound Effect", "Sound to play when the character is talking. Overrides the setting in the Dialog."));
EditorGUILayout.PropertyField(setSayDialogProp);
EditorGUILayout.PropertyField(descriptionProp, new GUIContent("Description", "Notes about this story character (personality, attibutes, etc.)")); EditorGUILayout.PropertyField(descriptionProp, new GUIContent("Description", "Notes about this story character (personality, attibutes, etc.)"));
if (t.portraits != null && if (t.portraits != null &&
t.portraits.Count > 0) t.portraits.Count > 0)
{ {

3
Assets/Fungus/Narrative/Scripts/Character.cs

@ -18,6 +18,9 @@ namespace Fungus
public FacingDirection portraitsFace; public FacingDirection portraitsFace;
public PortraitState state; public PortraitState state;
[Tooltip("Sets the active Say dialog with a reference to a Say Dialog object in the scene. All story text will now display using this Say Dialog.")]
public SayDialog setSayDialog;
[FormerlySerializedAs("notes")] [FormerlySerializedAs("notes")]
[TextArea(5,10)] [TextArea(5,10)]
public string description; public string description;

5
Assets/Fungus/Narrative/Scripts/Commands/Say.cs

@ -58,6 +58,11 @@ namespace Fungus
executionCount++; executionCount++;
// Override the active say dialog if needed // Override the active say dialog if needed
if (character != null && character.setSayDialog != null)
{
SayDialog.activeSayDialog = character.setSayDialog;
}
if (setSayDialog != null) if (setSayDialog != null)
{ {
SayDialog.activeSayDialog = setSayDialog; SayDialog.activeSayDialog = setSayDialog;

Loading…
Cancel
Save