Compare commits

...

5 Commits

Author SHA1 Message Date
9c1a0fdc4c Merge branch 'main' of https://homelab.tailf7f81b.ts.net/tschesky/AppleHillsProduction 2025-10-17 16:15:50 +02:00
594a9815cc AnneLise guidance 2025-10-17 16:15:43 +02:00
Michal Pikulski
0557ddd3dc Add prompt when dialogue 2025-10-17 15:35:25 +02:00
Michal Pikulski
c3c9fd95a4 Add audio to dialogues 2025-10-17 15:20:51 +02:00
2fe872d8dc Merge pull request 'damianContentFreeze' (#35) from damianContentFreeze into main
Reviewed-on: #35
2025-10-17 13:16:12 +00:00
61 changed files with 1911 additions and 210 deletions

View File

@@ -419,4 +419,11 @@ AnimationClip:
flags: 0
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []
m_Events:
- time: 0
functionName: PlayPhotoSoundBite
data:
objectReferenceParameter: {fileID: 0}
floatParameter: 0
intParameter: 0
messageOptions: 0

View File

@@ -26,6 +26,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: 4728896231509914993, guid: 27419b0e3639a3e4184d676890da073a, type: 3}
_audio: {fileID: 8300000, guid: f189b8a044a8ae94fb38d99dbfc7deed, type: 3}
- rid: 4008004961021984848
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -33,6 +34,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -1125559343802010594, guid: 46b2fe6896b27cc4c8bd9f0da3f0de50, type: 3}
_audio: {fileID: 8300000, guid: 3f542c523460c5148a53ca2d5476a545, type: 3}
- rid: 4008004961021984849
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -40,6 +42,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -642587728066523507, guid: 95d6dbee5cb1f694c971791ee60cad14, type: 3}
_audio: {fileID: 8300000, guid: 195905675bf639f458a88f7567a3adc1, type: 3}
- rid: 4008004961021984850
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -47,6 +50,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -8438005379329254897, guid: fe735eb4f8856904caec179520dcb92f, type: 3}
_audio: {fileID: 8300000, guid: 95e98023d04bb6043967626c1b05833e, type: 3}
- rid: 4008004961021984866
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
data:

View File

@@ -424,6 +424,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -454384845472657506, guid: bbfabe7e36be4f341a775b4323900b5b, type: 3}
_audio: {fileID: 8300000, guid: edff293418f52fe4badb4f8ba8e770ab, type: 3}
- rid: 4008004961314799721
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -435,6 +436,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -5941552768301239376, guid: 300528d856c15824989bade57a7e04e4, type: 3}
_audio: {fileID: 8300000, guid: 69b3ae7103725d843b45b91cd31c0a4a, type: 3}
- rid: 4008004961314799723
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -446,6 +448,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -5941552768301239376, guid: 300528d856c15824989bade57a7e04e4, type: 3}
_audio: {fileID: 8300000, guid: 9cd155aba23b8ca4394ea3ecec4a0792, type: 3}
- rid: 4008004961314799725
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:

View File

@@ -479,6 +479,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -3811075571101519331, guid: cf5af87e6a25e9442b89f069b894a5fd, type: 3}
_audio: {fileID: 8300000, guid: e479d4c09170f7c4998db6919a1900ef, type: 3}
- rid: 4008004961314799811
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -490,6 +491,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -5941552768301239376, guid: 300528d856c15824989bade57a7e04e4, type: 3}
_audio: {fileID: 8300000, guid: 9cd155aba23b8ca4394ea3ecec4a0792, type: 3}
- rid: 4008004961314799813
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -501,6 +503,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -5941552768301239376, guid: 300528d856c15824989bade57a7e04e4, type: 3}
_audio: {fileID: 8300000, guid: 69b3ae7103725d843b45b91cd31c0a4a, type: 3}
- rid: 4008004961314799815
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:

View File

@@ -51,7 +51,7 @@ MonoBehaviour:
x: 754
y: 722
width: 1209
height: 646
height: 706
m_GraphElementMetaData:
- m_Guid:
m_Value0: 2073825529632823756
@@ -479,6 +479,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: 21300000, guid: 34b9ddb77aae2df4ab489b7bb8f16cff, type: 3}
_audio: {fileID: 8300000, guid: 81198916f8cd0134fafe4cc46c1d020f, type: 3}
- rid: 4008004961314799855
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -490,6 +491,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -5941552768301239376, guid: 300528d856c15824989bade57a7e04e4, type: 3}
_audio: {fileID: 8300000, guid: 9cd155aba23b8ca4394ea3ecec4a0792, type: 3}
- rid: 4008004961314799857
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -501,6 +503,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -5941552768301239376, guid: 300528d856c15824989bade57a7e04e4, type: 3}
_audio: {fileID: 8300000, guid: 69b3ae7103725d843b45b91cd31c0a4a, type: 3}
- rid: 4008004961314799859
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:

View File

@@ -479,6 +479,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -8203946286166492161, guid: 6cb19dd8ad625c543abe9aa233cd676d, type: 3}
_audio: {fileID: 8300000, guid: 9503ed836f046914395f0ece800a4d83, type: 3}
- rid: 4008004961314799899
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -490,6 +491,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -5941552768301239376, guid: 300528d856c15824989bade57a7e04e4, type: 3}
_audio: {fileID: 8300000, guid: 69b3ae7103725d843b45b91cd31c0a4a, type: 3}
- rid: 4008004961314799901
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -501,6 +503,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -5941552768301239376, guid: 300528d856c15824989bade57a7e04e4, type: 3}
_audio: {fileID: 8300000, guid: 9cd155aba23b8ca4394ea3ecec4a0792, type: 3}
- rid: 4008004961314799903
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:

View File

@@ -89,6 +89,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: 1487011052474782424, guid: f489e2c9ce64ff34aa3c7a91a4edbd77, type: 3}
_audio: {fileID: 0}
- rid: 4008004961314799763
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -167,6 +168,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: 1487011052474782424, guid: f489e2c9ce64ff34aa3c7a91a4edbd77, type: 3}
_audio: {fileID: 0}
- rid: 7772910664224079994
type: {class: GraphModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
data:

View File

@@ -1123,6 +1123,7 @@ MonoBehaviour:
_contentType: 0
_text: Hey boy, go on and pick up that ass over there!
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976304
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1130,6 +1131,7 @@ MonoBehaviour:
_contentType: 0
_text: "Go on, it's right there!\t\t"
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976305
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1137,6 +1139,7 @@ MonoBehaviour:
_contentType: 0
_text: I need ASS!
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976306
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1144,6 +1147,7 @@ MonoBehaviour:
_contentType: 0
_text: C'mon, don't be like this!
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976307
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1151,6 +1155,7 @@ MonoBehaviour:
_contentType: 0
_text: Yessss, that's the stuff, now chop it!
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976308
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1158,6 +1163,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: 6282751622250221668, guid: 204325ac88be74d4d882a078c64cf5e1, type: 3}
_audio: {fileID: 0}
- rid: 7545629632211976309
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1165,6 +1171,7 @@ MonoBehaviour:
_contentType: 0
_text: Chop it!!
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976310
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1172,6 +1179,7 @@ MonoBehaviour:
_contentType: 0
_text: Good, shit now cook!
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976311
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1179,6 +1187,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: 6282751622250221668, guid: 204325ac88be74d4d882a078c64cf5e1, type: 3}
_audio: {fileID: 0}
- rid: 7545629632211976312
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1186,6 +1195,7 @@ MonoBehaviour:
_contentType: 0
_text: What exactly are you cooking?!
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976313
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1193,6 +1203,7 @@ MonoBehaviour:
_contentType: 0
_text: What exactly are you cooking?!
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976314
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -1200,3 +1211,4 @@ MonoBehaviour:
_contentType: 0
_text: Yessssss, thanks!
_image: {fileID: 0}
_audio: {fileID: 0}

View File

@@ -656,6 +656,7 @@ MonoBehaviour:
_contentType: 0
_text: Some other test
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976295
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -663,6 +664,7 @@ MonoBehaviour:
_contentType: 0
_text: Some much longer text in here etc.
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976296
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -670,6 +672,7 @@ MonoBehaviour:
_contentType: 0
_text: Some oooother text
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976297
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -677,6 +680,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -765527507412255412, guid: f70246e6148769846aaea223ec0c2a55, type: 3}
_audio: {fileID: 0}
- rid: 7545629632211976298
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -684,6 +688,7 @@ MonoBehaviour:
_contentType: 0
_text: Now it's text
_image: {fileID: -9213056636207805707, guid: 00354ded9d8f8d643acc14837a229544, type: 3}
_audio: {fileID: 0}
- rid: 7545629632211976301
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -691,6 +696,7 @@ MonoBehaviour:
_contentType: 0
_text: Psst, I'm just testing some stuff df
_image: {fileID: 0}
_audio: {fileID: 0}
- rid: 7545629632211976302
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -698,6 +704,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -9213056636207805707, guid: 00354ded9d8f8d643acc14837a229544, type: 3}
_audio: {fileID: 0}
- rid: 7545629632211976322
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -737,6 +744,7 @@ MonoBehaviour:
_contentType: 1
_text:
_image: {fileID: -9213056636207805707, guid: 00354ded9d8f8d643acc14837a229544, type: 3}
_audio: {fileID: 0}
- rid: 7545629632211976324
type: {class: 'Constant`1[[Dialogue.DialogueContent, AppleHillsScripts]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
data:
@@ -744,3 +752,4 @@ MonoBehaviour:
_contentType: 0
_text: Now it's text again and it should loop!
_image: {fileID: -9213056636207805707, guid: 00354ded9d8f8d643acc14837a229544, type: 3}
_audio: {fileID: 0}

View File

@@ -11,33 +11,44 @@ namespace Dialogue.Editor
{
// Height constants
private const float TypeSelectorHeight = 20f;
private const float PropertySpacing = 2f;
private const float PropertySpacing = 2f; // Reduced spacing for tighter layout
private const float TextFieldHeight = 40f; // Taller for multi-line text
private const float ImageFieldHeight = 18f;
private const float AudioFieldHeight = 18f;
private const float PreviewHeight = 64f;
// Track the last assigned sprite to detect changes
private static Sprite lastAssignedSprite;
private static string lastAssignedPropertyPath;
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
var contentTypeProperty = property.FindPropertyRelative("_contentType");
var imageProperty = property.FindPropertyRelative("_image");
// Start with base height for type selector
var height = TypeSelectorHeight + PropertySpacing;
// Add height based on content type
if (contentTypeProperty.enumValueIndex == (int)DialogueContentType.Text)
{
height += TextFieldHeight;
height += TextFieldHeight + PropertySpacing;
}
else // Image
{
height += ImageFieldHeight;
height += ImageFieldHeight + PropertySpacing;
// Add preview height if an image is assigned
var imageProperty = property.FindPropertyRelative("_image");
// Add preview height if an image is assigned - make sure it's AFTER the image field
// but BEFORE the audio field
if (imageProperty.objectReferenceValue != null)
{
height += PropertySpacing + PreviewHeight;
height += PreviewHeight + PropertySpacing;
}
}
// Add height for audio field (always displayed)
height += AudioFieldHeight;
return height;
}
@@ -54,15 +65,58 @@ namespace Dialogue.Editor
var contentTypeProperty = property.FindPropertyRelative("_contentType");
var textProperty = property.FindPropertyRelative("_text");
var imageProperty = property.FindPropertyRelative("_image");
var audioProperty = property.FindPropertyRelative("_audio");
// Calculate rects
var typeRect = new Rect(contentRect.x, contentRect.y, contentRect.width, TypeSelectorHeight);
// Check for sprite changes and force repaint if needed
var currentSprite = imageProperty.objectReferenceValue as Sprite;
if (currentSprite != lastAssignedSprite && property.propertyPath == lastAssignedPropertyPath)
{
// Sprite changed, force a layout recalculation
EditorUtility.SetDirty(property.serializedObject.targetObject);
GUI.changed = true;
}
// Track current y position as we add controls
float currentY = contentRect.y;
// Calculate type rect
var typeRect = new Rect(contentRect.x, currentY, contentRect.width, TypeSelectorHeight);
currentY += TypeSelectorHeight + PropertySpacing;
// Calculate content field rect based on the content type
var contentHeight = contentTypeProperty.enumValueIndex == (int)DialogueContentType.Text ?
TextFieldHeight : ImageFieldHeight;
var contentFieldRect = new Rect(
contentRect.x,
contentRect.y + TypeSelectorHeight + PropertySpacing,
currentY,
contentRect.width,
contentTypeProperty.enumValueIndex == (int)DialogueContentType.Text ? TextFieldHeight : ImageFieldHeight);
contentHeight);
currentY += contentHeight + PropertySpacing;
// If we have an image and it's selected, calculate preview rect
Rect previewRect = Rect.zero;
if (contentTypeProperty.enumValueIndex == (int)DialogueContentType.Image &&
imageProperty.objectReferenceValue != null)
{
previewRect = new Rect(
contentRect.x,
currentY,
contentRect.width,
PreviewHeight);
currentY += PreviewHeight + PropertySpacing;
}
// Calculate audio field rect
var audioFieldRect = new Rect(
contentRect.x,
currentY,
contentRect.width,
AudioFieldHeight);
// Now draw all the controls
// Draw the content type dropdown
EditorGUI.PropertyField(typeRect, contentTypeProperty, GUIContent.none);
@@ -78,8 +132,27 @@ namespace Dialogue.Editor
}
else // Image
{
// Store the sprite before drawing the field to detect changes
var previousSprite = imageProperty.objectReferenceValue as Sprite;
// Draw the image field
EditorGUI.BeginChangeCheck();
EditorGUI.PropertyField(contentFieldRect, imageProperty, GUIContent.none);
if (EditorGUI.EndChangeCheck())
{
// Image changed, store the property path so we can detect which property changed
lastAssignedPropertyPath = property.propertyPath;
lastAssignedSprite = imageProperty.objectReferenceValue as Sprite;
// Force an inspector update to recalculate layout
EditorUtility.SetDirty(property.serializedObject.targetObject);
// Mark the scene as dirty to ensure serialization and proper layout refresh
if (!EditorApplication.isPlaying)
{
UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(
UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene());
}
}
// Draw a preview if an image is assigned
if (imageProperty.objectReferenceValue != null)
@@ -87,44 +160,58 @@ namespace Dialogue.Editor
var sprite = imageProperty.objectReferenceValue as Sprite;
if (sprite != null)
{
var previewRect = new Rect(
contentRect.x,
contentFieldRect.y + contentFieldRect.height + PropertySpacing,
contentRect.width,
PreviewHeight);
// Draw the preview with preserved aspect ratio
DrawSpritePreview(previewRect, sprite);
}
}
}
// Draw the audio field (always displayed regardless of content type)
EditorGUI.PropertyField(audioFieldRect, audioProperty, new GUIContent("Audio"));
// Restore indent
EditorGUI.indentLevel = indent;
EditorGUI.EndProperty();
}
private void DrawSpritePreview(Rect position, Sprite sprite)
// Helper method to draw a sprite preview with preserved aspect ratio
private void DrawSpritePreview(Rect rect, Sprite sprite)
{
if (sprite == null || sprite.texture == null) return;
if (sprite == null || sprite.texture == null)
return;
var texture = sprite.texture;
var spriteRect = sprite.rect;
var aspectRatio = spriteRect.width / spriteRect.height;
// Calculate aspect-preserved rect
float aspectRatio = sprite.rect.width / sprite.rect.height;
float targetWidth = Mathf.Min(position.width, position.height * aspectRatio);
float targetHeight = targetWidth / aspectRatio;
// Calculate preview rect while preserving aspect ratio within our fixed area
Rect previewRect = rect;
// Center the preview
Rect previewRect = new Rect(
position.x + (position.width - targetWidth) * 0.5f,
position.y + (position.height - targetHeight) * 0.5f,
targetWidth,
targetHeight
);
// Limit the display size to the allocated space while maintaining aspect ratio
if (aspectRatio > 1f) // Wider than tall
{
previewRect.height = Mathf.Min(rect.width / aspectRatio, rect.height);
previewRect.y += (rect.height - previewRect.height) * 0.5f;
}
else // Taller than wide or square
{
previewRect.width = Mathf.Min(rect.height * aspectRatio, rect.width);
previewRect.x += (rect.width - previewRect.width) * 0.5f;
}
// Draw the sprite preview
EditorGUI.DrawPreviewTexture(previewRect, sprite.texture, null, ScaleMode.ScaleToFit);
// Constrain the preview to the allocated space
previewRect.height = Mathf.Min(previewRect.height, rect.height);
previewRect.width = Mathf.Min(previewRect.width, rect.width);
// Draw a border around the preview
GUI.Box(previewRect, GUIContent.none);
// Draw preview with a dark background for better visibility
EditorGUI.DrawRect(rect, new Color(0.1f, 0.1f, 0.1f, 1f));
GUI.DrawTexture(previewRect, texture, ScaleMode.ScaleToFit);
// Draw sprite bounds
EditorGUI.DrawRect(new Rect(previewRect.x, previewRect.y, previewRect.width, 1), Color.gray);
EditorGUI.DrawRect(new Rect(previewRect.x, previewRect.y + previewRect.height - 1, previewRect.width, 1), Color.gray);
EditorGUI.DrawRect(new Rect(previewRect.x, previewRect.y, 1, previewRect.height), Color.gray);
EditorGUI.DrawRect(new Rect(previewRect.x + previewRect.width - 1, previewRect.y, 1, previewRect.height), Color.gray);
}
}
}

View File

@@ -427,6 +427,10 @@ PrefabInstance:
propertyPath: m_Name
value: FootballBird
objectReference: {fileID: 0}
- target: {fileID: 1972611059221495588, guid: 9b2d5618c8cc81743b982c6cc8d95871, type: 3}
propertyPath: stepData
value:
objectReference: {fileID: 0}
- target: {fileID: 7465517589433942351, guid: 9b2d5618c8cc81743b982c6cc8d95871, type: 3}
propertyPath: m_LocalPosition.x
value: 0.15

View File

@@ -518,6 +518,10 @@ PrefabInstance:
propertyPath: m_Name
value: HammerBird
objectReference: {fileID: 0}
- target: {fileID: 1972611059221495588, guid: e3d6494020df3a34f88a89f0ee9a3527, type: 3}
propertyPath: stepData
value:
objectReference: {fileID: 0}
- target: {fileID: 7465517589433942351, guid: e3d6494020df3a34f88a89f0ee9a3527, type: 3}
propertyPath: m_LocalPosition.x
value: 1.25

View File

@@ -223,7 +223,8 @@ GameObject:
- component: {fileID: 2071071585578300598}
- component: {fileID: 1454372124634854912}
- component: {fileID: 4122067414526815177}
m_Layer: 6
- component: {fileID: 362100613909257970}
m_Layer: 10
m_Name: Hidden
m_TagString: Untagged
m_Icon: {fileID: 0}
@@ -305,6 +306,33 @@ BoxCollider2D:
m_AutoTiling: 0
m_Size: {x: 5.42, y: 4}
m_EdgeRadius: 0
--- !u!114 &362100613909257970
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1011363502278351410}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 73d6494a73174ffabc6a7d3089d51e73, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::Interactions.Interactable
isOneTime: 0
cooldown: -1
characterToInteract: 0
interactionStarted:
m_PersistentCalls:
m_Calls: []
interactionInterrupted:
m_PersistentCalls:
m_Calls: []
characterArrived:
m_PersistentCalls:
m_Calls: []
interactionComplete:
m_PersistentCalls:
m_Calls: []
--- !u!1 &1674229500073894281
GameObject:
m_ObjectHideFlags: 0
@@ -621,6 +649,7 @@ GameObject:
- component: {fileID: 2995561023563842343}
- component: {fileID: 7053055077639234121}
- component: {fileID: 578146208477020881}
- component: {fileID: 7652960462502122104}
m_Layer: 0
m_Name: AnneLiseBush
m_TagString: Untagged
@@ -705,6 +734,103 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 603ecc4a6ab6bb84c8cb9773fa310b69, type: 3}
m_Name:
m_EditorClassIdentifier: '::'
--- !u!82 &7652960462502122104
AudioSource:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5943355783477523754}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 3533147658878909314, guid: 727a7e4b6df4b0d47897f7d8ee7fa323, type: 2}
m_audioClip: {fileID: 0}
m_Resource: {fileID: 0}
m_PlayOnAwake: 0
m_Volume: 1
m_Pitch: 1
Loop: 0
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!1 &7019503702609181254
GameObject:
m_ObjectHideFlags: 0
@@ -988,6 +1114,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 260954bde403f504c84c67f22b8a5888, type: 3}
m_Name:
m_EditorClassIdentifier: AppleHillsScripts::TakePhotoState
audioPlayer: {fileID: 7652960462502122104}
clipToPlay: {fileID: 0}
playerTargetObject: {fileID: 4304786163860520790}
--- !u!61 &962877523590950341
BoxCollider2D:

View File

@@ -114,13 +114,14 @@ MonoBehaviour:
m_EditorClassIdentifier: AppleHillsScripts::Dialogue.SpeechBubble
textDisplay: {fileID: 4573570654593171780}
imageDisplay: {fileID: 4814676392695871198}
dialoguePromptImage: {fileID: 6481613319593204747}
dialogueBubble: {fileID: 1494212192306772670}
displayMode: 1
typewriterSpeed: 0.05
typingSoundSource: {fileID: 0}
typingSoundFrequency: 3
useRichText: 1
dialogueDisplayTime: 3
dialoguePromptText: . . .
--- !u!1 &3571537114331005905
GameObject:
m_ObjectHideFlags: 0
@@ -353,6 +354,81 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &5966238993889414591
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2913690643654480743}
- component: {fileID: 5237027710007059819}
- component: {fileID: 6481613319593204747}
m_Layer: 5
m_Name: Prompt
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &2913690643654480743
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5966238993889414591}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3484825090253933040}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 143, y: 74}
m_SizeDelta: {x: 245, y: 148}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5237027710007059819
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5966238993889414591}
m_CullTransparentMesh: 1
--- !u!114 &6481613319593204747
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5966238993889414591}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: -1369078500869033561, guid: d52355bd23697ac4eaad116fb0aec19d, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6499933157207406972
GameObject:
m_ObjectHideFlags: 0
@@ -385,6 +461,7 @@ RectTransform:
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 8307219291215824345}
- {fileID: 2913690643654480743}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}

File diff suppressed because it is too large Load Diff

View File

@@ -9,6 +9,7 @@ using PuzzleS;
namespace Dialogue
{
[AddComponentMenu("AppleHills/Dialogue/Dialogue Component")]
[RequireComponent(typeof(AudioSource))]
public class DialogueComponent : MonoBehaviour
{
[SerializeField] private RuntimeDialogueGraph dialogueGraph;
@@ -17,6 +18,7 @@ namespace Dialogue
private int currentLineIndex;
private bool initialized = false;
private SpeechBubble speechBubble;
private AudioSource audioSource;
// Flag to track when a condition has been met but dialogue hasn't advanced yet
private bool _conditionSatisfiedPendingAdvance = false;
@@ -35,6 +37,15 @@ namespace Dialogue
private void Start()
{
// Get required components
audioSource = GetComponent<AudioSource>();
speechBubble = GetComponentInChildren<SpeechBubble>();
if (speechBubble == null)
{
Debug.LogError("SpeechBubble component is missing on Dialogue Component");
}
// Register for global events
if (PuzzleManager.Instance != null)
PuzzleManager.Instance.OnStepCompleted += OnAnyPuzzleStepCompleted;
@@ -49,13 +60,6 @@ namespace Dialogue
ItemManager.Instance.OnItemsCombined += OnAnyItemsCombined;
}
speechBubble = GetComponentInChildren<SpeechBubble>();
if (speechBubble == null)
{
Debug.LogError("SpeechBubble component is missing on Dialogue Component");
}
// Auto-start the dialogue
// StartDialogue();
@@ -88,6 +92,9 @@ namespace Dialogue
// and pass whether there are more lines available for prompt display
speechBubble.DisplayDialogueContent(content, HasAnyLines());
// Play audio if available
PlayDialogueAudio(content.Audio);
// Log the content type for debugging
Logging.Debug($"Displaying content type: {content.ContentType} - {(content.ContentType == DialogueContentType.Text ? content.Text : content.Image?.name)}");
}
@@ -101,7 +108,28 @@ namespace Dialogue
Logging.Debug($"Displaying legacy text: {line}");
}
}
/// <summary>
/// Play the audio clip for the current dialogue content
/// </summary>
/// <param name="clip">Audio clip to play</param>
private void PlayDialogueAudio(AudioClip clip)
{
// Stop any currently playing audio
if (audioSource.isPlaying)
{
audioSource.Stop();
}
// Play the new clip if it exists
if (clip != null)
{
audioSource.clip = clip;
audioSource.Play();
Logging.Debug($"Playing dialogue audio: {clip.name}");
}
}
/// <summary>
/// Get the current dialogue content (text or image)
/// </summary>

View File

@@ -21,6 +21,7 @@ namespace Dialogue
[SerializeField] private DialogueContentType _contentType = DialogueContentType.Text;
[SerializeField] private string _text = string.Empty;
[SerializeField] private Sprite _image = null;
[SerializeField] private AudioClip _audio = null;
/// <summary>
/// The type of content this entry contains
@@ -37,16 +38,23 @@ namespace Dialogue
/// </summary>
public Sprite Image => _image;
/// <summary>
/// The audio clip to play with this content
/// </summary>
public AudioClip Audio => _audio;
/// <summary>
/// Create text content
/// </summary>
/// <param name="text">The text to display</param>
public static DialogueContent CreateText(string text)
/// <param name="audio">Optional audio clip to play</param>
public static DialogueContent CreateText(string text, AudioClip audio = null)
{
return new DialogueContent
{
_contentType = DialogueContentType.Text,
_text = text
_text = text,
_audio = audio
};
}
@@ -54,12 +62,14 @@ namespace Dialogue
/// Create image content
/// </summary>
/// <param name="image">The image to display</param>
public static DialogueContent CreateImage(Sprite image)
/// <param name="audio">Optional audio clip to play</param>
public static DialogueContent CreateImage(Sprite image, AudioClip audio = null)
{
return new DialogueContent
{
_contentType = DialogueContentType.Image,
_image = image
_image = image,
_audio = audio
};
}
@@ -68,9 +78,13 @@ namespace Dialogue
/// </summary>
public override string ToString()
{
return ContentType == DialogueContentType.Text
string contentDesc = ContentType == DialogueContentType.Text
? $"Text: {_text}"
: $"Image: {_image?.name ?? "None"}";
return _audio != null
? $"{contentDesc} (with audio: {_audio.name})"
: contentDesc;
}
}
}

View File

@@ -19,14 +19,15 @@ namespace Dialogue
public class SpeechBubble : MonoBehaviour
{
[SerializeField] private TextMeshProUGUI textDisplay;
[SerializeField] private Image imageDisplay; // New field for displaying images
[SerializeField] private Image imageDisplay; // For displaying images in dialogue
[SerializeField] private Image dialoguePromptImage; // NEW: Reference to the dialogue prompt image
[SerializeField] private GameObject dialogueBubble; // NEW: Reference to the dialogue bubble container
[SerializeField] private TextDisplayMode displayMode = TextDisplayMode.Typewriter;
[SerializeField] private float typewriterSpeed = 0.05f; // Time between characters in seconds
[SerializeField] private AudioSource typingSoundSource;
[SerializeField] private float typingSoundFrequency = 3; // Play sound every X characters
[SerializeField] private bool useRichText = true; // Whether to respect rich text tags
[SerializeField] private float dialogueDisplayTime = 1.5f; // Time in seconds to display dialogue before showing prompt
[SerializeField] private string dialoguePromptText = ". . ."; // Text to show as a prompt for available dialogue
private Coroutine typewriterCoroutine;
private Coroutine promptUpdateCoroutine;
@@ -34,15 +35,22 @@ namespace Dialogue
private Sprite currentImage = null;
private bool isVisible = false;
private DialogueContentType currentContentType = DialogueContentType.Text;
private bool isPromptVisible = false; // Track if we're showing the prompt or dialogue
private void Awake()
{
// Ensure we have both components
// Ensure we have the required components
if (textDisplay == null)
Debug.LogError("SpeechBubble: TextMeshProUGUI component is not assigned!");
if (imageDisplay == null)
Debug.LogError("SpeechBubble: Image component is not assigned!");
Debug.LogError("SpeechBubble: Image component for dialogue is not assigned!");
if (dialoguePromptImage == null)
Debug.LogError("SpeechBubble: Dialogue prompt image is not assigned!");
if (dialogueBubble == null)
Debug.LogError("SpeechBubble: Dialogue bubble container is not assigned!");
}
/// <summary>
@@ -50,16 +58,28 @@ namespace Dialogue
/// </summary>
public void Show()
{
gameObject.SetActive(true);
// If we're showing the prompt, we only activate the prompt image
if (isPromptVisible)
{
dialogueBubble.SetActive(false);
dialoguePromptImage.gameObject.SetActive(true);
}
else // Otherwise, show the dialogue bubble
{
dialogueBubble.SetActive(true);
dialoguePromptImage.gameObject.SetActive(false);
}
isVisible = true;
}
/// <summary>
/// Hide the speech bubble
/// Hide the speech bubble and prompt
/// </summary>
public void Hide()
{
gameObject.SetActive(false);
dialogueBubble.SetActive(false);
dialoguePromptImage.gameObject.SetActive(false);
isVisible = false;
// Stop any ongoing typewriter effect
@@ -102,6 +122,7 @@ namespace Dialogue
currentFullText = text;
currentContentType = DialogueContentType.Text;
isPromptVisible = false; // We're showing dialogue, not a prompt
// Stop any existing typewriter effect
if (typewriterCoroutine != null)
@@ -110,7 +131,7 @@ namespace Dialogue
typewriterCoroutine = null;
}
// Activate text display, deactivate image display
// Activate text display, deactivate image display within the dialogue bubble
textDisplay.gameObject.SetActive(true);
if (imageDisplay != null)
{
@@ -150,6 +171,7 @@ namespace Dialogue
// Display the dialogue line
if (!string.IsNullOrEmpty(line))
{
isPromptVisible = false; // We're showing dialogue content
SetText(line);
// After a delay, update the prompt visibility
@@ -163,19 +185,24 @@ namespace Dialogue
}
/// <summary>
/// Update the speech bubble to either show a prompt or hide based on dialogue availability
/// Update to either show the dialogue prompt image or hide based on dialogue availability
/// </summary>
/// <param name="hasDialogueAvailable">Whether dialogue is available</param>
public void UpdatePromptVisibility(bool hasDialogueAvailable)
{
if (hasDialogueAvailable)
{
Show();
SetText(dialoguePromptText);
isPromptVisible = true; // We're showing the prompt, not dialogue
// Hide dialogue bubble, show prompt image
dialogueBubble.SetActive(false);
dialoguePromptImage.gameObject.SetActive(true);
isVisible = true;
}
else
{
Hide();
Hide(); // Hide both bubble and prompt
}
}
@@ -291,6 +318,7 @@ namespace Dialogue
currentImage = sprite;
currentContentType = DialogueContentType.Image;
isPromptVisible = false; // We're showing dialogue content, not a prompt
// Activate image display, set the sprite
imageDisplay.gameObject.SetActive(true);
@@ -364,6 +392,7 @@ namespace Dialogue
}
// Display the content based on its type
isPromptVisible = false; // We're showing dialogue content
currentContentType = content.ContentType;
if (content.ContentType == DialogueContentType.Text)
@@ -372,6 +401,10 @@ namespace Dialogue
textDisplay.gameObject.SetActive(true);
if (imageDisplay != null) imageDisplay.gameObject.SetActive(false);
// Show dialogue bubble, hide prompt
dialogueBubble.SetActive(true);
dialoguePromptImage.gameObject.SetActive(false);
// Display the text
DisplayDialogueLine(content.Text, hasMoreDialogue);
}
@@ -381,6 +414,10 @@ namespace Dialogue
textDisplay.gameObject.SetActive(false);
if (imageDisplay != null) imageDisplay.gameObject.SetActive(true);
// Show dialogue bubble, hide prompt
dialogueBubble.SetActive(true);
dialoguePromptImage.gameObject.SetActive(false);
// Set the image
SetImage(content.Image);

View File

@@ -2,12 +2,15 @@ using Input;
using Pixelplacement;
using System.Collections;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.Events;
using static Input.PlayerTouchController;
public class TakePhotoState : State
{
public AudioSource audioPlayer;
public AudioResource clipToPlay;
public Transform playerTargetObject;
private GameObject playerCharacter;
private PlayerTouchController playerTouchController;
@@ -38,4 +41,10 @@ public class TakePhotoState : State
GetComponent<Animator>().SetTrigger("TakePhoto");
playerTouchController.OnArrivedAtTarget -= PlayerHasArrived;
}
public void PlayPhotoSoundBite()
{
audioPlayer.resource = clipToPlay;
audioPlayer.Play();
}
}

View File

@@ -0,0 +1,82 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1233149941 &-5309023858716468127
AudioContainerElement:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: traf_no1_{-5309023858716468127}
m_AudioClip: {fileID: 8300000, guid: 7daf361da397d6d44b698ee4fe5b112f, type: 3}
m_Volume: 0
m_Enabled: 1
--- !u!1233149941 &-5074051279880114189
AudioContainerElement:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: traf_no2_{-5074051279880114189}
m_AudioClip: {fileID: 8300000, guid: 6ea2c1d043d029241ba2bf976817eff8, type: 3}
m_Volume: 0
m_Enabled: 1
--- !u!1233149941 &-4817933010465290265
AudioContainerElement:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: negative1_{-4817933010465290265}
m_AudioClip: {fileID: 8300000, guid: 9cd155aba23b8ca4394ea3ecec4a0792, type: 3}
m_Volume: 0
m_Enabled: 1
--- !u!1233149941 &-569638598327121888
AudioContainerElement:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: traf_no3_{-569638598327121888}
m_AudioClip: {fileID: 8300000, guid: c93ed6144e2ade6478c61d76a6d0b195, type: 3}
m_Volume: 0
m_Enabled: 1
--- !u!1307931743 &6418180475301049370
AudioRandomContainer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: birdNo
m_Volume: 0
m_Pitch: 0
m_AutomaticTriggerTime: 0
m_LoopCount: 1
m_VolumeRandomizationRange: {x: 0, y: 0}
m_PitchRandomizationRange: {x: 0, y: 0}
m_AutomaticTriggerTimeRandomizationRange: {x: 0, y: 0}
m_LoopCountRandomizationRange: {x: 0, y: 0}
m_Elements:
- {fileID: -4817933010465290265}
- {fileID: 9143116294945548828}
- {fileID: -5309023858716468127}
- {fileID: -5074051279880114189}
- {fileID: -569638598327121888}
m_AvoidRepeatingLast: 2
m_PlaybackMode: 2
m_TriggerMode: 0
m_AutomaticTriggerMode: 1
m_LoopMode: 2
m_VolumeRandomizationEnabled: 0
m_PitchRandomizationEnabled: 0
m_AutomaticTriggerTimeRandomizationEnabled: 0
m_LoopCountRandomizationEnabled: 0
--- !u!1233149941 &9143116294945548828
AudioContainerElement:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: negative2_{9143116294945548828}
m_AudioClip: {fileID: 8300000, guid: 69b3ae7103725d843b45b91cd31c0a4a, type: 3}
m_Volume: 0
m_Enabled: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b9e6fbf22e15c7f49b1c2832d8d2745c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 6418180475301049370
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: e479d4c09170f7c4998db6919a1900ef
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,71 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1233149941 &-4923351398626562001
AudioContainerElement:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: traf_no2_{-4923351398626562001}
m_AudioClip: {fileID: 8300000, guid: 6ea2c1d043d029241ba2bf976817eff8, type: 3}
m_Volume: 0
m_Enabled: 1
--- !u!1233149941 &-18323707585573302
AudioContainerElement:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: traf_no1_{-18323707585573302}
m_AudioClip: {fileID: 8300000, guid: 7daf361da397d6d44b698ee4fe5b112f, type: 3}
m_Volume: 0
m_Enabled: 1
--- !u!1233149941 &2599102942885645190
AudioContainerElement:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: AudioContainerElement_{2599102942885645190}
m_AudioClip: {fileID: 0}
m_Volume: 0
m_Enabled: 1
--- !u!1233149941 &6011268868179359575
AudioContainerElement:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: AudioContainerElement_{6011268868179359575}
m_AudioClip: {fileID: 0}
m_Volume: 0
m_Enabled: 1
--- !u!1307931743 &6418180475301049370
AudioRandomContainer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: traf_no
m_Volume: 0
m_Pitch: 0
m_AutomaticTriggerTime: 0
m_LoopCount: 1
m_VolumeRandomizationRange: {x: 0, y: 0}
m_PitchRandomizationRange: {x: 0, y: 0}
m_AutomaticTriggerTimeRandomizationRange: {x: 0, y: 0}
m_LoopCountRandomizationRange: {x: 0, y: 0}
m_Elements:
- {fileID: -18323707585573302}
- {fileID: -4923351398626562001}
- {fileID: 6011268868179359575}
- {fileID: 2599102942885645190}
m_AvoidRepeatingLast: 0
m_PlaybackMode: 2
m_TriggerMode: 0
m_AutomaticTriggerMode: 1
m_LoopMode: 2
m_VolumeRandomizationEnabled: 0
m_PitchRandomizationEnabled: 0
m_AutomaticTriggerTimeRandomizationEnabled: 0
m_LoopCountRandomizationEnabled: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9716da1837fd1ac4287a7f0bc0759dc7
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 6418180475301049370
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,27 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1307931743 &6418180475301049370
AudioRandomContainer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: traf_yes
m_Volume: 0
m_Pitch: 0
m_AutomaticTriggerTime: 0
m_LoopCount: 1
m_VolumeRandomizationRange: {x: 0, y: 0}
m_PitchRandomizationRange: {x: 0, y: 0}
m_AutomaticTriggerTimeRandomizationRange: {x: 0, y: 0}
m_LoopCountRandomizationRange: {x: 0, y: 0}
m_Elements: []
m_AvoidRepeatingLast: 0
m_PlaybackMode: 0
m_TriggerMode: 1
m_AutomaticTriggerMode: 1
m_LoopMode: 2
m_VolumeRandomizationEnabled: 0
m_PitchRandomizationEnabled: 0
m_AutomaticTriggerTimeRandomizationEnabled: 0
m_LoopCountRandomizationEnabled: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 41fa16d49be11c841afbf215e6b25ad3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 6418180475301049370
userData:
assetBundleName:
assetBundleVariant: