diff --git a/Assets/Dialogue/TestDialogueBase.asset b/Assets/Dialogue/TestDialogueBase.asset index ff23a9bf8..80075457f 100644 --- a/Assets/Dialogue/TestDialogueBase.asset +++ b/Assets/Dialogue/TestDialogueBase.asset @@ -24355,7 +24355,7 @@ MonoBehaviour: type: 4 typeString: CustomFieldType_Localization - title: EventGuid - value: 0e82506b-79bb-4efc-8472-a3583160edf1 + value: type: 0 typeString: conversationID: 96 diff --git a/Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Standard/Bark/StandardBarkUI.cs b/Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Standard/Bark/StandardBarkUI.cs index 4b276e0a1..d90a07893 100644 --- a/Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Standard/Bark/StandardBarkUI.cs +++ b/Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI/Standard/Bark/StandardBarkUI.cs @@ -205,10 +205,11 @@ namespace PixelCrushers.DialogueSystem SetUIElementsActive(true); if (CanTriggerAnimations() && !string.IsNullOrEmpty(animationTransitions.showTrigger)) { + animator.ResetTrigger(animationTransitions.hideTrigger); animator.SetTrigger(animationTransitions.showTrigger); } CancelInvoke("Hide"); - var barkDuration = Mathf.Approximately(0, duration) ? DialogueManager.GetBarkDuration(subtitleText) : duration; + var barkDuration = Math.Max(DialogueManager.GetBarkDuration(subtitleText) ,duration); if (!(waitUntilSequenceEnds || waitForContinueButton)) Invoke("Hide", barkDuration); if (waitUntilSequenceEnds) numSequencesActive++; doneTime = waitForContinueButton ? Mathf.Infinity : (DialogueTime.time + barkDuration); diff --git a/Assets/Scenes/Land_01/Land_of_Death_River1_Valley02.unity b/Assets/Scenes/Land_01/Land_of_Death_River1_Valley02.unity index a700139ef..6ce222608 100644 --- a/Assets/Scenes/Land_01/Land_of_Death_River1_Valley02.unity +++ b/Assets/Scenes/Land_01/Land_of_Death_River1_Valley02.unity @@ -5437,7 +5437,7 @@ PrefabInstance: type: 3} propertyPath: m_Mesh value: - objectReference: {fileID: 308168767} + objectReference: {fileID: 91638194} - target: {fileID: 2614899761469592910, guid: 03dbe1927cbadab49b452a55e1ba5ca0, type: 3} propertyPath: m_Name @@ -12583,6 +12583,171 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 24b4e22eae3cdd44682bdc50832a3605, type: 3} +--- !u!43 &91638194 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FluidContainer + serializedVersion: 11 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 10, z: 9} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 1 + m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 24 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 768 + _typelessdata: 000020c1000020c100001041000000800000803f000000800000803f0000803f00002041000020c100001041000000800000803f00000080000000000000803f00002041000020c1000010c1000000800000803f000000800000000000000000000020c1000020c1000010c1000000800000803f000000800000803f00000000000020c100002041000010c10000803f00000080000000800000803f0000803f000020c100002041000010410000803f0000008000000080000000000000803f000020c1000020c1000010410000803f00000080000000800000000000000000000020c1000020c1000010c10000803f00000080000000800000803f00000000000020c100002041000010410000008000000080000080bf0000803f0000803f0000204100002041000010410000008000000080000080bf000000000000803f00002041000020c1000010410000008000000080000080bf0000000000000000000020c1000020c1000010410000008000000080000080bf0000803f000000000000204100002041000010c100000080000000800000803f0000803f0000803f000020c100002041000010c100000080000000800000803f000000000000803f000020c1000020c1000010c100000080000000800000803f000000000000000000002041000020c1000010c100000080000000800000803f0000803f00000000000020410000204100001041000080bf00000080000000800000803f0000803f0000204100002041000010c1000080bf0000008000000080000000000000803f00002041000020c1000010c1000080bf0000008000000080000000000000000000002041000020c100001041000080bf00000080000000800000803f00000000000020c100002041000010c100000080000080bf000000800000803f0000803f0000204100002041000010c100000080000080bf00000080000000000000803f00002041000020410000104100000080000080bf000000800000000000000000000020c1000020410000104100000080000080bf000000800000803f00000000 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 10, z: 9} + m_MeshUsageFlags: 0 + m_CookingOptions: 30 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + 'm_MeshMetrics[0]': 1 + 'm_MeshMetrics[1]': 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: --- !u!1 &92244449 GameObject: m_ObjectHideFlags: 0 @@ -41575,171 +41740,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 307737919} m_PrefabAsset: {fileID: 0} ---- !u!43 &308168767 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: FluidContainer - serializedVersion: 11 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 24 - localAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 10, z: 9} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 1 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 1 - m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 24 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 24 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 768 - _typelessdata: 000020c1000020c100001041000000800000803f000000800000803f0000803f00002041000020c100001041000000800000803f00000080000000000000803f00002041000020c1000010c1000000800000803f000000800000000000000000000020c1000020c1000010c1000000800000803f000000800000803f00000000000020c100002041000010c10000803f00000080000000800000803f0000803f000020c100002041000010410000803f0000008000000080000000000000803f000020c1000020c1000010410000803f00000080000000800000000000000000000020c1000020c1000010c10000803f00000080000000800000803f00000000000020c100002041000010410000008000000080000080bf0000803f0000803f0000204100002041000010410000008000000080000080bf000000000000803f00002041000020c1000010410000008000000080000080bf0000000000000000000020c1000020c1000010410000008000000080000080bf0000803f000000000000204100002041000010c100000080000000800000803f0000803f0000803f000020c100002041000010c100000080000000800000803f000000000000803f000020c1000020c1000010c100000080000000800000803f000000000000000000002041000020c1000010c100000080000000800000803f0000803f00000000000020410000204100001041000080bf00000080000000800000803f0000803f0000204100002041000010c1000080bf0000008000000080000000000000803f00002041000020c1000010c1000080bf0000008000000080000000000000000000002041000020c100001041000080bf00000080000000800000803f00000000000020c100002041000010c100000080000080bf000000800000803f0000803f0000204100002041000010c100000080000080bf00000080000000000000803f00002041000020410000104100000080000080bf000000800000000000000000000020c1000020410000104100000080000080bf000000800000803f00000000 - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 10, z: 9} - m_MeshUsageFlags: 0 - m_CookingOptions: 30 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - 'm_MeshMetrics[0]': 1 - 'm_MeshMetrics[1]': 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: --- !u!1001 &308647352 PrefabInstance: m_ObjectHideFlags: 0 @@ -43004,7 +43004,7 @@ PrefabInstance: - target: {fileID: 2065518434898640957, guid: 328b55d817523634f85d1e8a144d9dd4, type: 3} propertyPath: m_Enabled - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3553271189056128661, guid: 328b55d817523634f85d1e8a144d9dd4, type: 3} @@ -43024,7 +43024,7 @@ PrefabInstance: - target: {fileID: 8117314713044463352, guid: 328b55d817523634f85d1e8a144d9dd4, type: 3} propertyPath: m_Enabled - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8117314713044463352, guid: 328b55d817523634f85d1e8a144d9dd4, type: 3} @@ -43054,11 +43054,7 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 3553271189056128661, guid: 328b55d817523634f85d1e8a144d9dd4, - type: 3} - insertIndex: -1 - addedObject: {fileID: 621698165} + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 328b55d817523634f85d1e8a144d9dd4, type: 3} --- !u!4 &320848346 stripped Transform: @@ -43072,8 +43068,8 @@ MonoBehaviour: type: 3} m_PrefabInstance: {fileID: 320848345} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 621698159} - m_Enabled: 0 + m_GameObject: {fileID: 0} + m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 82f8f534f4d73499ea554681a3e99a4a, type: 3} m_Name: @@ -76026,7 +76022,42 @@ PrefabInstance: - target: {fileID: 2382337341177186454, guid: bfe0b1ea1898da04c87fefcfd00c65a9, type: 3} propertyPath: m_Enabled - value: 0 + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2382337341177186454, guid: bfe0b1ea1898da04c87fefcfd00c65a9, + type: 3} + propertyPath: conversationEvents.onConversationEnd.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2382337341177186454, guid: bfe0b1ea1898da04c87fefcfd00c65a9, + type: 3} + propertyPath: conversationEvents.onConversationEnd.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2382337341177186454, guid: bfe0b1ea1898da04c87fefcfd00c65a9, + type: 3} + propertyPath: conversationEvents.onConversationEnd.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 320848347} + - target: {fileID: 2382337341177186454, guid: bfe0b1ea1898da04c87fefcfd00c65a9, + type: 3} + propertyPath: conversationEvents.onConversationEnd.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2382337341177186454, guid: bfe0b1ea1898da04c87fefcfd00c65a9, + type: 3} + propertyPath: conversationEvents.onConversationEnd.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: StartPlayer + objectReference: {fileID: 0} + - target: {fileID: 2382337341177186454, guid: bfe0b1ea1898da04c87fefcfd00c65a9, + type: 3} + propertyPath: conversationEvents.onConversationEnd.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: Beyond.BarkPlayer, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 2382337341177186454, guid: bfe0b1ea1898da04c87fefcfd00c65a9, + type: 3} + propertyPath: conversationEvents.onConversationEnd.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - target: {fileID: 5919661459690830915, guid: bfe0b1ea1898da04c87fefcfd00c65a9, type: 3} @@ -90546,33 +90577,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 621212914} m_PrefabAsset: {fileID: 0} ---- !u!1 &621698159 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 3553271189056128661, guid: 328b55d817523634f85d1e8a144d9dd4, - type: 3} - m_PrefabInstance: {fileID: 320848345} - m_PrefabAsset: {fileID: 0} ---- !u!65 &621698165 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 621698159} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1.0000001, y: 1.0000001, z: 1.0000001} - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &622271332 GameObject: m_ObjectHideFlags: 0 @@ -101855,171 +101859,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 5936264682031127245} m_PrefabAsset: {fileID: 0} ---- !u!43 &675163329 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: FluidContainer - serializedVersion: 11 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 24 - localAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 9.72, z: 13.65} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 1 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 1 - m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 24 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 24 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 768 - _typelessdata: 000020c11f851bc166665a41000000800000803f000000800000803f0000803f000020411f851bc166665a41000000800000803f00000080000000000000803f000020411f851bc166665ac1000000800000803f000000800000000000000000000020c11f851bc166665ac1000000800000803f000000800000803f00000000000020c11f851b4166665ac10000803f00000080000000800000803f0000803f000020c11f851b4166665a410000803f0000008000000080000000000000803f000020c11f851bc166665a410000803f00000080000000800000000000000000000020c11f851bc166665ac10000803f00000080000000800000803f00000000000020c11f851b4166665a410000008000000080000080bf0000803f0000803f000020411f851b4166665a410000008000000080000080bf000000000000803f000020411f851bc166665a410000008000000080000080bf0000000000000000000020c11f851bc166665a410000008000000080000080bf0000803f00000000000020411f851b4166665ac100000080000000800000803f0000803f0000803f000020c11f851b4166665ac100000080000000800000803f000000000000803f000020c11f851bc166665ac100000080000000800000803f0000000000000000000020411f851bc166665ac100000080000000800000803f0000803f00000000000020411f851b4166665a41000080bf00000080000000800000803f0000803f000020411f851b4166665ac1000080bf0000008000000080000000000000803f000020411f851bc166665ac1000080bf00000080000000800000000000000000000020411f851bc166665a41000080bf00000080000000800000803f00000000000020c11f851b4166665ac100000080000080bf000000800000803f0000803f000020411f851b4166665ac100000080000080bf00000080000000000000803f000020411f851b4166665a4100000080000080bf000000800000000000000000000020c11f851b4166665a4100000080000080bf000000800000803f00000000 - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 9.72, z: 13.65} - m_MeshUsageFlags: 0 - m_CookingOptions: 30 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - 'm_MeshMetrics[0]': 1 - 'm_MeshMetrics[1]': 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: --- !u!1001 &675566199 PrefabInstance: m_ObjectHideFlags: 0 @@ -129976,171 +129815,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 880491192} m_PrefabAsset: {fileID: 0} ---- !u!43 &880529470 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: FluidContainer - serializedVersion: 11 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 24 - localAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 10, z: 9} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 1 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 1 - m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 24 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 24 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 768 - _typelessdata: 000020c1000020c100001041000000800000803f000000800000803f0000803f00002041000020c100001041000000800000803f00000080000000000000803f00002041000020c1000010c1000000800000803f000000800000000000000000000020c1000020c1000010c1000000800000803f000000800000803f00000000000020c100002041000010c10000803f00000080000000800000803f0000803f000020c100002041000010410000803f0000008000000080000000000000803f000020c1000020c1000010410000803f00000080000000800000000000000000000020c1000020c1000010c10000803f00000080000000800000803f00000000000020c100002041000010410000008000000080000080bf0000803f0000803f0000204100002041000010410000008000000080000080bf000000000000803f00002041000020c1000010410000008000000080000080bf0000000000000000000020c1000020c1000010410000008000000080000080bf0000803f000000000000204100002041000010c100000080000000800000803f0000803f0000803f000020c100002041000010c100000080000000800000803f000000000000803f000020c1000020c1000010c100000080000000800000803f000000000000000000002041000020c1000010c100000080000000800000803f0000803f00000000000020410000204100001041000080bf00000080000000800000803f0000803f0000204100002041000010c1000080bf0000008000000080000000000000803f00002041000020c1000010c1000080bf0000008000000080000000000000000000002041000020c100001041000080bf00000080000000800000803f00000000000020c100002041000010c100000080000080bf000000800000803f0000803f0000204100002041000010c100000080000080bf00000080000000000000803f00002041000020410000104100000080000080bf000000800000000000000000000020c1000020410000104100000080000080bf000000800000803f00000000 - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 10, z: 9} - m_MeshUsageFlags: 0 - m_CookingOptions: 30 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - 'm_MeshMetrics[0]': 1 - 'm_MeshMetrics[1]': 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: --- !u!1001 &881311351 PrefabInstance: m_ObjectHideFlags: 0 @@ -150025,7 +149699,9 @@ MonoBehaviour: m_sunLight: {fileID: 1976683114} m_moonLight: {fileID: 0} WeatherPresent: 0 + WeatherSystem: {fileID: 0} m_sunLightExists: 1 + m_moonLightExists: 0 --- !u!4 &1013064392 Transform: m_ObjectHideFlags: 10 @@ -185337,6 +185013,39 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 0c27735bb3e334847bd2eac3b79601a8, type: 3} +--- !u!21 &1312285775 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Height Fog Global + m_Shader: {fileID: 4800000, guid: 3a7ef1b66bafb7a448a880ef76d2e6e6, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3002 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: [] + m_Ints: [] + m_Floats: + - _HeightFogGlobal: 1 + - _IsHeightFogShader: 1 + - _IsStandardPipeline: 0 + - _TITLE: 1 + - _TransparentQueue: 3000 + m_Colors: [] + m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!4 &1312367988 stripped Transform: m_CorrespondingSourceObject: {fileID: 371585142213583375, guid: cb16257a6a39a9d4dbb0408ffc1f6900, @@ -186124,23 +185833,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ca55201633b97d3408f439eb84ecb249, type: 3} m_Name: m_EditorClassIdentifier: - dialogueEntrySceneEvents: - - guid: 0e82506b-79bb-4efc-8472-a3583160edf1 - onExecute: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 320848347} - m_TargetAssemblyTypeName: UnityEngine.Behaviour, UnityEngine - m_MethodName: set_enabled - m_Mode: 6 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 1 - m_CallState: 2 + dialogueEntrySceneEvents: [] --- !u!1001 &1320157829 PrefabInstance: m_ObjectHideFlags: 0 @@ -203881,6 +203574,171 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1473704724} m_PrefabAsset: {fileID: 0} +--- !u!43 &1474729673 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FluidContainer + serializedVersion: 11 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 9.72, z: 13.65} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 1 + m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 24 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 768 + _typelessdata: 000020c11f851bc166665a41000000800000803f000000800000803f0000803f000020411f851bc166665a41000000800000803f00000080000000000000803f000020411f851bc166665ac1000000800000803f000000800000000000000000000020c11f851bc166665ac1000000800000803f000000800000803f00000000000020c11f851b4166665ac10000803f00000080000000800000803f0000803f000020c11f851b4166665a410000803f0000008000000080000000000000803f000020c11f851bc166665a410000803f00000080000000800000000000000000000020c11f851bc166665ac10000803f00000080000000800000803f00000000000020c11f851b4166665a410000008000000080000080bf0000803f0000803f000020411f851b4166665a410000008000000080000080bf000000000000803f000020411f851bc166665a410000008000000080000080bf0000000000000000000020c11f851bc166665a410000008000000080000080bf0000803f00000000000020411f851b4166665ac100000080000000800000803f0000803f0000803f000020c11f851b4166665ac100000080000000800000803f000000000000803f000020c11f851bc166665ac100000080000000800000803f0000000000000000000020411f851bc166665ac100000080000000800000803f0000803f00000000000020411f851b4166665a41000080bf00000080000000800000803f0000803f000020411f851b4166665ac1000080bf0000008000000080000000000000803f000020411f851bc166665ac1000080bf00000080000000800000000000000000000020411f851bc166665a41000080bf00000080000000800000803f00000000000020c11f851b4166665ac100000080000080bf000000800000803f0000803f000020411f851b4166665ac100000080000080bf00000080000000000000803f000020411f851b4166665a4100000080000080bf000000800000000000000000000020c11f851b4166665a4100000080000080bf000000800000803f00000000 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 9.72, z: 13.65} + m_MeshUsageFlags: 0 + m_CookingOptions: 30 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + 'm_MeshMetrics[0]': 1 + 'm_MeshMetrics[1]': 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: --- !u!1001 &1475766669 PrefabInstance: m_ObjectHideFlags: 0 @@ -230175,6 +230033,8 @@ MonoBehaviour: x: 250 y: 250 z: 250 + m_allFloatingPointFixMembers: [] + m_allWorldSpaceParticleSystems: [] m_originTargetTileX: 0 m_originTargetTileZ: 0 m_terrainUnloadMemoryTreshold: 4294967296 @@ -233646,171 +233506,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 634639000} m_PrefabAsset: {fileID: 0} ---- !u!43 &1704535705 -Mesh: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: FluidContainer - serializedVersion: 11 - m_SubMeshes: - - serializedVersion: 2 - firstByte: 0 - indexCount: 36 - topology: 0 - baseVertex: 0 - firstVertex: 0 - vertexCount: 24 - localAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 9.72, z: 13.65} - m_Shapes: - vertices: [] - shapes: [] - channels: [] - fullWeights: [] - m_BindPose: [] - m_BoneNameHashes: - m_RootBoneNameHash: 0 - m_BonesAABB: [] - m_VariableBoneCountWeights: - m_Data: - m_MeshCompression: 0 - m_IsReadable: 1 - m_KeepVertices: 0 - m_KeepIndices: 0 - m_IndexFormat: 1 - m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 - m_VertexData: - serializedVersion: 3 - m_VertexCount: 24 - m_Channels: - - stream: 0 - offset: 0 - format: 0 - dimension: 3 - - stream: 0 - offset: 12 - format: 0 - dimension: 3 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 24 - format: 0 - dimension: 2 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - - stream: 0 - offset: 0 - format: 0 - dimension: 0 - m_DataSize: 768 - _typelessdata: 000020c11f851bc166665a41000000800000803f000000800000803f0000803f000020411f851bc166665a41000000800000803f00000080000000000000803f000020411f851bc166665ac1000000800000803f000000800000000000000000000020c11f851bc166665ac1000000800000803f000000800000803f00000000000020c11f851b4166665ac10000803f00000080000000800000803f0000803f000020c11f851b4166665a410000803f0000008000000080000000000000803f000020c11f851bc166665a410000803f00000080000000800000000000000000000020c11f851bc166665ac10000803f00000080000000800000803f00000000000020c11f851b4166665a410000008000000080000080bf0000803f0000803f000020411f851b4166665a410000008000000080000080bf000000000000803f000020411f851bc166665a410000008000000080000080bf0000000000000000000020c11f851bc166665a410000008000000080000080bf0000803f00000000000020411f851b4166665ac100000080000000800000803f0000803f0000803f000020c11f851b4166665ac100000080000000800000803f000000000000803f000020c11f851bc166665ac100000080000000800000803f0000000000000000000020411f851bc166665ac100000080000000800000803f0000803f00000000000020411f851b4166665a41000080bf00000080000000800000803f0000803f000020411f851b4166665ac1000080bf0000008000000080000000000000803f000020411f851bc166665ac1000080bf00000080000000800000000000000000000020411f851bc166665a41000080bf00000080000000800000803f00000000000020c11f851b4166665ac100000080000080bf000000800000803f0000803f000020411f851b4166665ac100000080000080bf00000080000000000000803f000020411f851b4166665a4100000080000080bf000000800000000000000000000020c11f851b4166665a4100000080000080bf000000800000803f00000000 - m_CompressedMesh: - m_Vertices: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_UV: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Normals: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Tangents: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_Weights: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_NormalSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_TangentSigns: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_FloatColors: - m_NumItems: 0 - m_Range: 0 - m_Start: 0 - m_Data: - m_BitSize: 0 - m_BoneIndices: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_Triangles: - m_NumItems: 0 - m_Data: - m_BitSize: 0 - m_UVInfo: 0 - m_LocalAABB: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 10, y: 9.72, z: 13.65} - m_MeshUsageFlags: 0 - m_CookingOptions: 30 - m_BakedConvexCollisionMesh: - m_BakedTriangleCollisionMesh: - 'm_MeshMetrics[0]': 1 - 'm_MeshMetrics[1]': 1 - m_MeshOptimizationFlags: 1 - m_StreamData: - serializedVersion: 2 - offset: 0 - size: 0 - path: --- !u!4 &1704949382 stripped Transform: m_CorrespondingSourceObject: {fileID: 5061051456986744064, guid: 7462eaa03fc060246a7501b03b099352, @@ -297141,6 +296836,171 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1773985258} m_PrefabAsset: {fileID: 0} +--- !u!43 &1775057128 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FluidContainer + serializedVersion: 11 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 10, z: 9} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 1 + m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 24 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 768 + _typelessdata: 000020c1000020c100001041000000800000803f000000800000803f0000803f00002041000020c100001041000000800000803f00000080000000000000803f00002041000020c1000010c1000000800000803f000000800000000000000000000020c1000020c1000010c1000000800000803f000000800000803f00000000000020c100002041000010c10000803f00000080000000800000803f0000803f000020c100002041000010410000803f0000008000000080000000000000803f000020c1000020c1000010410000803f00000080000000800000000000000000000020c1000020c1000010c10000803f00000080000000800000803f00000000000020c100002041000010410000008000000080000080bf0000803f0000803f0000204100002041000010410000008000000080000080bf000000000000803f00002041000020c1000010410000008000000080000080bf0000000000000000000020c1000020c1000010410000008000000080000080bf0000803f000000000000204100002041000010c100000080000000800000803f0000803f0000803f000020c100002041000010c100000080000000800000803f000000000000803f000020c1000020c1000010c100000080000000800000803f000000000000000000002041000020c1000010c100000080000000800000803f0000803f00000000000020410000204100001041000080bf00000080000000800000803f0000803f0000204100002041000010c1000080bf0000008000000080000000000000803f00002041000020c1000010c1000080bf0000008000000080000000000000000000002041000020c100001041000080bf00000080000000800000803f00000000000020c100002041000010c100000080000080bf000000800000803f0000803f0000204100002041000010c100000080000080bf00000080000000000000803f00002041000020410000104100000080000080bf000000800000000000000000000020c1000020410000104100000080000080bf000000800000803f00000000 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 10, z: 9} + m_MeshUsageFlags: 0 + m_CookingOptions: 30 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + 'm_MeshMetrics[0]': 1 + 'm_MeshMetrics[1]': 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: --- !u!1001 &1777677680 PrefabInstance: m_ObjectHideFlags: 0 @@ -299529,7 +299389,7 @@ PrefabInstance: type: 3} propertyPath: m_Mesh value: - objectReference: {fileID: 1704535705} + objectReference: {fileID: 1474729673} - target: {fileID: 2614899761469592910, guid: 03dbe1927cbadab49b452a55e1ba5ca0, type: 3} propertyPath: m_Name @@ -299997,39 +299857,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1368983887} m_PrefabAsset: {fileID: 0} ---- !u!21 &1800327038 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Height Fog Global - m_Shader: {fileID: 4800000, guid: 3a7ef1b66bafb7a448a880ef76d2e6e6, type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3002 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: - - _HeightFogGlobal: 1 - - _IsHeightFogShader: 1 - - _IsStandardPipeline: 0 - - _TITLE: 1 - - _TransparentQueue: 3000 - m_Colors: [] - m_BuildTextureStacks: [] - m_AllowLocking: 1 --- !u!1001 &1801754751 PrefabInstance: m_ObjectHideFlags: 0 @@ -313147,6 +312974,171 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1903373846} m_PrefabAsset: {fileID: 0} +--- !u!43 &1903429168 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: FluidContainer + serializedVersion: 11 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 9.72, z: 13.65} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 0 + m_KeepIndices: 0 + m_IndexFormat: 1 + m_IndexBuffer: 00000000010000000300000001000000020000000300000004000000050000000700000005000000060000000700000008000000090000000b000000090000000a0000000b0000000c0000000d0000000f0000000d0000000e0000000f000000100000001100000013000000110000001200000013000000140000001500000017000000150000001600000017000000 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 24 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 768 + _typelessdata: 000020c11f851bc166665a41000000800000803f000000800000803f0000803f000020411f851bc166665a41000000800000803f00000080000000000000803f000020411f851bc166665ac1000000800000803f000000800000000000000000000020c11f851bc166665ac1000000800000803f000000800000803f00000000000020c11f851b4166665ac10000803f00000080000000800000803f0000803f000020c11f851b4166665a410000803f0000008000000080000000000000803f000020c11f851bc166665a410000803f00000080000000800000000000000000000020c11f851bc166665ac10000803f00000080000000800000803f00000000000020c11f851b4166665a410000008000000080000080bf0000803f0000803f000020411f851b4166665a410000008000000080000080bf000000000000803f000020411f851bc166665a410000008000000080000080bf0000000000000000000020c11f851bc166665a410000008000000080000080bf0000803f00000000000020411f851b4166665ac100000080000000800000803f0000803f0000803f000020c11f851b4166665ac100000080000000800000803f000000000000803f000020c11f851bc166665ac100000080000000800000803f0000000000000000000020411f851bc166665ac100000080000000800000803f0000803f00000000000020411f851b4166665a41000080bf00000080000000800000803f0000803f000020411f851b4166665ac1000080bf0000008000000080000000000000803f000020411f851bc166665ac1000080bf00000080000000800000000000000000000020411f851bc166665a41000080bf00000080000000800000803f00000000000020c11f851b4166665ac100000080000080bf000000800000803f0000803f000020411f851b4166665ac100000080000080bf00000080000000000000803f000020411f851b4166665a4100000080000080bf000000800000000000000000000020c11f851b4166665a4100000080000080bf000000800000803f00000000 + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 10, y: 9.72, z: 13.65} + m_MeshUsageFlags: 0 + m_CookingOptions: 30 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + 'm_MeshMetrics[0]': 1 + 'm_MeshMetrics[1]': 1 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: --- !u!4 &1903722992 stripped Transform: m_CorrespondingSourceObject: {fileID: 4283788935881206155, guid: 9ec7b44ed3172f04d9b12c5394ae2b39, @@ -332590,70 +332582,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_sprite: {fileID: 0} ---- !u!21 &2031760298 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Override - m_Shader: {fileID: 4800000, guid: a3a3bc8785681554d9558e2ea68f100e, type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: - - _DIRECTIONALL: 1 - - _DirectionalFalloff: 2 - - _DirectionalIntensity: 1 - - _DirectionalMode: 1 - - _FOGG: 1 - - _FogAxisMode: 1 - - _FogColorDuo: 1 - - _FogDistanceEnd: 200 - - _FogDistanceFalloff: 2 - - _FogDistanceStart: -200 - - _FogHeightEnd: 200 - - _FogHeightFalloff: 2 - - _FogHeightStart: 0 - - _FogIntensity: 1 - - _FogLayersMode: 0 - - _IsHeightFogPreset: 1 - - _IsHeightFogShader: 1 - - _IsStandardPipeline: 0 - - _NOISEE: 1 - - _NoiseDistanceEnd: 50 - - _NoiseIntensity: 1 - - _NoiseMode: 2 - - _NoiseModeBlend: 1 - - _NoiseScale: 30 - - _SKYBOXX: 1 - - _SkyboxFogFalloff: 1 - - _SkyboxFogFill: 1 - - _SkyboxFogHeight: 1 - - _SkyboxFogIntensity: 1 - - _TITLE: 1 - m_Colors: - - _DirectionalColor: {r: 1, g: 0.7793103, b: 0.5, a: 1} - - _DirectionalDir: {r: 0, g: 0, b: 0, a: 0} - - _FogAxisOption: {r: 0, g: 0, b: 0, a: 0} - - _FogColorEnd: {r: 0.8862745, g: 1.443137, b: 2, a: 1} - - _FogColorStart: {r: 0.4411765, g: 0.722515, b: 1, a: 1} - - _NoiseSpeed: {r: 0.5, g: 0, b: 0.5, a: 0} - m_BuildTextureStacks: [] - m_AllowLocking: 1 --- !u!1001 &2033495543 PrefabInstance: m_ObjectHideFlags: 0 @@ -341652,6 +341580,70 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 8254231ee5fadae4b9b0a4a2a3d3c1d3, type: 3} +--- !u!21 &2066700895 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Override + m_Shader: {fileID: 4800000, guid: a3a3bc8785681554d9558e2ea68f100e, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: [] + m_Ints: [] + m_Floats: + - _DIRECTIONALL: 1 + - _DirectionalFalloff: 2 + - _DirectionalIntensity: 1 + - _DirectionalMode: 1 + - _FOGG: 1 + - _FogAxisMode: 1 + - _FogColorDuo: 1 + - _FogDistanceEnd: 200 + - _FogDistanceFalloff: 2 + - _FogDistanceStart: -200 + - _FogHeightEnd: 200 + - _FogHeightFalloff: 2 + - _FogHeightStart: 0 + - _FogIntensity: 1 + - _FogLayersMode: 0 + - _IsHeightFogPreset: 1 + - _IsHeightFogShader: 1 + - _IsStandardPipeline: 0 + - _NOISEE: 1 + - _NoiseDistanceEnd: 50 + - _NoiseIntensity: 1 + - _NoiseMode: 2 + - _NoiseModeBlend: 1 + - _NoiseScale: 30 + - _SKYBOXX: 1 + - _SkyboxFogFalloff: 1 + - _SkyboxFogFill: 1 + - _SkyboxFogHeight: 1 + - _SkyboxFogIntensity: 1 + - _TITLE: 1 + m_Colors: + - _DirectionalColor: {r: 1, g: 0.7793103, b: 0.5, a: 1} + - _DirectionalDir: {r: 0, g: 0, b: 0, a: 0} + - _FogAxisOption: {r: 0, g: 0, b: 0, a: 0} + - _FogColorEnd: {r: 0.8862745, g: 1.443137, b: 2, a: 1} + - _FogColorStart: {r: 0.4411765, g: 0.722515, b: 1, a: 1} + - _NoiseSpeed: {r: 0.5, g: 0, b: 0.5, a: 0} + m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!1001 &2067067599 PrefabInstance: m_ObjectHideFlags: 0 @@ -342133,7 +342125,7 @@ GameObject: m_Icon: {fileID: 2800000, guid: 4e3e077817b8a684ea3c1fd5132b2f3f, type: 3} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &2071017579 Transform: m_ObjectHideFlags: 0 @@ -419686,7 +419678,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 1800327038} + - {fileID: 1312285775} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -419779,7 +419771,7 @@ MonoBehaviour: manualPositionAndScale: 0 renderPriority: 2 styledSpace0: 0 - overrideMaterial: {fileID: 2031760298} + overrideMaterial: {fileID: 2066700895} overrideCamToVolumeDistance: Infinity overrideVolumeDistanceFade: 0 version: 180 diff --git a/Assets/Scripts/Utils/BarkPlayer.cs b/Assets/Scripts/Utils/BarkPlayer.cs index d76150650..6a29a97e1 100644 --- a/Assets/Scripts/Utils/BarkPlayer.cs +++ b/Assets/Scripts/Utils/BarkPlayer.cs @@ -81,13 +81,9 @@ namespace Beyond // Ensure this namespace matches your project public override void Awake() { - // Set initial state based on Inspector setting *before* base.Awake potentially calls ApplyData - // If save data exists, ApplyData will overwrite this. _runtime_IsStarted = startAutomaticallyOnLoad; + base.Awake(); - base.Awake(); // This might call ApplyData via Save System - - // --- Component & Initial Setup --- triggerCollider = GetComponent(); if (!triggerCollider.isTrigger) { @@ -95,13 +91,12 @@ namespace Beyond // Ensure this namespace matches your project triggerCollider.isTrigger = true; } - // --- Default LayerMask --- - if (triggeringLayers.value == 0) // LayerMask is empty/unassigned + if (triggeringLayers.value == 0) { int playerLayer = LayerMask.NameToLayer("Player"); if (playerLayer != -1) { - triggeringLayers = LayerMask.GetMask("Player"); // Default to Player layer + triggeringLayers = LayerMask.GetMask("Player"); Debug.LogWarning($"BarkPlayer on {gameObject.name}: Triggering Layers not set in inspector, defaulting to 'Player' layer.", this); } else @@ -109,13 +104,10 @@ namespace Beyond // Ensure this namespace matches your project Debug.LogError($"BarkPlayer ({gameObject.name}): Triggering Layers is not set in the inspector, and the default 'Player' layer was not found. This trigger will likely not activate.", this); } } - - // Final state of _runtime_IsStarted reflects Inspector default OR loaded save data. } private void Start() { - // --- Get BarkManager Instance --- barkManager = BarkManager.Instance; if (barkManager == null) { @@ -124,12 +116,8 @@ namespace Beyond // Ensure this namespace matches your project return; } - // --- Apply Loaded Indices --- - // Ensure array index is valid even if array size changed since saving currentEntryArrayIndex = Mathf.Clamp(m_saveData.savedCurrentEntryArrayIndex, 0, Mathf.Max(0, barkManagerEntryIndices.Length - 1)); - // nextBarkSequenceIndex will be applied when PrepareEntrySequence is called - // --- Validate Entry Indices --- if (barkManagerEntryIndices == null || barkManagerEntryIndices.Length == 0) { Debug.LogWarning($"BarkPlayer ({gameObject.name}): No Bark Manager Entry Indices provided. Disabling.", this); @@ -147,10 +135,7 @@ namespace Beyond // Ensure this namespace matches your project } isInitialized = true; - - // Check if we should start playing immediately after initialization - // (e.g., if loaded state is 'started' and player is already inside trigger) - CheckForAutoStartIfInside(); + CheckForAutoStartIfInside(); // Check immediately if conditions are met } private void OnDrawGizmos() @@ -158,10 +143,9 @@ namespace Beyond // Ensure this namespace matches your project Collider col = GetComponent(); if (col != null) { - Gizmos.color = isTriggeringObjectInside ? new Color(1f, 0.5f, 0.5f, 0.4f) : new Color(0.5f, 1f, 0.5f, 0.3f); // Red when active + Gizmos.color = isTriggeringObjectInside ? new Color(1f, 0.5f, 0.5f, 0.4f) : new Color(0.5f, 1f, 0.5f, 0.3f); if (col is BoxCollider box) Gizmos.DrawCube(transform.TransformPoint(box.center), Vector3.Scale(box.size, transform.lossyScale)); else if (col is SphereCollider sphere) Gizmos.DrawSphere(transform.TransformPoint(sphere.center), sphere.radius * MaxComponent(transform.lossyScale)); - // Add other collider types if needed } } @@ -171,8 +155,8 @@ namespace Beyond // Ensure this namespace matches your project private void OnTriggerEnter(Collider other) { - // Ignore if not initialized, not enabled, or runtime state is not 'Started' - if (!isInitialized || !enabled || !_runtime_IsStarted) return; + // Only ignore if not initialized or component is disabled + if (!isInitialized || !enabled) return; // --- Layer Check --- int otherLayer = other.gameObject.layer; @@ -183,64 +167,65 @@ namespace Beyond // Ensure this namespace matches your project // --- Check if already processing an object --- // This prevents multiple triggering objects from interfering. Only the first one in matters. - if (isTriggeringObjectInside) return; + if (isTriggeringObjectInside && other.transform != currentTriggererTransform) + { + // If another object enters while one is already tracked, ignore the new one. + // If it's the *same* object re-entering (somehow), this check might be too strict, + // but standard OnTriggerEnter/Exit should handle one object at a time. + return; + } + if (isTriggeringObjectInside) return; // Simplified: if already tracking one, ignore others. - // --- Valid Trigger --- - Debug.Log($"BarkPlayer ({gameObject.name}): Triggering object '{other.name}' entered.", this); + // --- Valid Trigger - Mark presence --- + // We set these REGARDLESS of _runtime_IsStarted so state is correct when StartPlayer() is called + Debug.Log($"BarkPlayer ({gameObject.name}): Triggering object '{other.name}' entered (tracking presence).", this); isTriggeringObjectInside = true; currentTriggererTransform = other.transform; // Store the transform for barking - // --- Start Playback Coroutine if not already running --- - if (currentPlaybackCoroutine == null) + // --- Start Playback Coroutine if player is started and not already running --- + // This handles the case where the player enters *after* StartPlayer() has been called + if (_runtime_IsStarted && currentPlaybackCoroutine == null) { + Debug.Log($"BarkPlayer ({gameObject.name}): Player is active. Starting playback loop due to new entry.", this); // Apply potentially loaded/saved array index before starting loop currentEntryArrayIndex = Mathf.Clamp(m_saveData.savedCurrentEntryArrayIndex, 0, Mathf.Max(0, barkManagerEntryIndices.Length - 1)); // nextBarkSequenceIndex will be set by PrepareEntrySequence inside the coroutine currentPlaybackCoroutine = StartCoroutine(ContinuousPlaybackLoop()); } + // If !_runtime_IsStarted, isTriggeringObjectInside is now true, + // and CheckForAutoStartIfInside() (called by StartPlayer()) will pick it up. } + private void OnTriggerExit(Collider other) { if (!isInitialized || !enabled) return; - // --- Layer Check --- int otherLayer = other.gameObject.layer; if ((triggeringLayers.value & (1 << otherLayer)) == 0) { - return; // Ignore exit events from non-triggering layers + return; } - // --- Check if the *tracked* object is the one exiting --- if (other.transform == currentTriggererTransform) { - Debug.Log($"BarkPlayer ({gameObject.name}): Triggering object '{other.name}' exited.", this); + Debug.Log($"BarkPlayer ({gameObject.name}): Tracked triggering object '{other.name}' exited.", this); isTriggeringObjectInside = false; - currentTriggererTransform = null; // Clear the stored transform + currentTriggererTransform = null; - // --- Stop the Playback Coroutine --- if (currentPlaybackCoroutine != null) { StopCoroutine(currentPlaybackCoroutine); currentPlaybackCoroutine = null; Debug.Log($"BarkPlayer ({gameObject.name}): Stopping playback loop due to exit.", this); - // Optional: Immediately stop BarkManager audio? - // if (barkManager != null && barkManager.IsPlaying) barkManager.m_audioSource.Stop(); } } - // Else: Some other object on a triggering layer exited, but the primary one is still inside. Do nothing. } #endregion #region Playback Logic - /// - /// Sets up the playbackOrder list for a specific BarkManager entry index. - /// Resets or applies saved nextBarkSequenceIndex. - /// - /// The index within BarkManager's m_barks array. - /// True if preparation was successful (entry has barks), false otherwise. private bool PrepareEntrySequence(int entryIndexToPrepare) { if (barkManager == null) return false; @@ -249,169 +234,141 @@ namespace Beyond // Ensure this namespace matches your project if (barkCount <= 0) { Debug.LogWarning($"BarkPlayer ({gameObject.name}): BarkEntry {entryIndexToPrepare} (from array index {currentEntryArrayIndex}) has no barks. Skipping entry.", this); - playbackOrder = new List(); // Ensure list is empty + playbackOrder = new List(); nextBarkSequenceIndex = 0; - return false; // Indicate nothing to play for this entry + return false; } - // Generate sequence order (sequential or shuffled) playbackOrder = Enumerable.Range(0, barkCount).ToList(); if (shuffleOrder) { - // Simple Fisher-Yates shuffle for (int i = playbackOrder.Count - 1; i > 0; i--) { int j = Random.Range(0, i + 1); - // Tuple swap is concise (playbackOrder[i], playbackOrder[j]) = (playbackOrder[j], playbackOrder[i]); } - // Debug.Log($"BarkPlayer ({gameObject.name}): Shuffled order for entry {entryIndexToPrepare}.", this); } - // Reset sequence progress. Apply saved index ONLY if the loaded array index matches the current one. - if (currentEntryArrayIndex == m_saveData.savedCurrentEntryArrayIndex) + // Apply saved index ONLY if the loaded entry array index matches the current one + // AND if the shuffle setting at time of save matches current. + // If shuffle setting changed, it's safer to restart the entry. + if (currentEntryArrayIndex == m_saveData.savedCurrentEntryArrayIndex && shuffleOrder == m_saveData.wasShuffled) { nextBarkSequenceIndex = Mathf.Clamp(m_saveData.savedNextBarkSequenceIndex, 0, playbackOrder.Count); - // Debug.Log($"BarkPlayer ({gameObject.name}): Resuming entry {entryIndexToPrepare} at bark index {nextBarkSequenceIndex}.", this); } else { - nextBarkSequenceIndex = 0; // Start new entry from beginning if array index differs from saved + nextBarkSequenceIndex = 0; } + // Clear the saved next bark index after applying it or deciding not to, + // so it's not incorrectly reused if we loop back to this entry without saving/loading. + // m_saveData.savedNextBarkSequenceIndex = 0; // Reconsider this - only clear on actual load/new entry start. - return true; // Preparation successful + return true; } - /// - /// Main coroutine managing the playback loop through entries and barks. - /// private IEnumerator ContinuousPlaybackLoop() { Debug.Log($"BarkPlayer ({gameObject.name}): Starting playback loop.", this); - // Initial check for valid configuration if (barkManagerEntryIndices == null || barkManagerEntryIndices.Length == 0) { Debug.LogError($"BarkPlayer ({gameObject.name}): Cannot start loop, entry indices array is empty or null.", this); - currentPlaybackCoroutine = null; // Ensure coroutine reference is cleared + currentPlaybackCoroutine = null; yield break; } - // Outer loop: Continues as long as a valid triggering object is inside - while (isTriggeringObjectInside && currentTriggererTransform != null) + // Outer loop: Continues as long as a valid triggering object is inside AND player is started + while (isTriggeringObjectInside && currentTriggererTransform != null && _runtime_IsStarted) // Added _runtime_IsStarted check here too { - // --- Step 1: Prepare for Current Entry --- - // Safety check/loop wrap for the array index if (currentEntryArrayIndex >= barkManagerEntryIndices.Length) { currentEntryArrayIndex = 0; if (barkManagerEntryIndices.Length == 0) - { // Should be caught earlier, but double-check + { Debug.LogError($"BarkPlayer ({gameObject.name}): Entry indices array became empty during loop?", this); + currentPlaybackCoroutine = null; // Ensure it's cleared yield break; } } int currentManagerEntryIndex = barkManagerEntryIndices[currentEntryArrayIndex]; - // Debug.Log($"BarkPlayer ({gameObject.name}): Preparing Entry Index: {currentManagerEntryIndex} (Array Pos: {currentEntryArrayIndex}).", this); - - // Prepare the sequence (generate playbackOrder, set nextBarkSequenceIndex) bool canPlayEntry = PrepareEntrySequence(currentManagerEntryIndex); - if (!canPlayEntry) // Skip this entry if it has no barks + if (!canPlayEntry) { - // Debug.Log($"BarkPlayer ({gameObject.name}): Skipping empty BarkEntry {currentManagerEntryIndex}.", this); - currentEntryArrayIndex++; // Move immediately to the next entry index - yield return null; // Wait a frame before checking the next entry in the outer loop - continue; // Go to next iteration of the outer while loop (skips delays below) + currentEntryArrayIndex++; + m_saveData.savedNextBarkSequenceIndex = 0; // Ensure next time this entry is loaded (if looping), it starts fresh + yield return null; + continue; } - - // --- Step 2: Inner Loop - Play Barks within the Current Entry --- - while (nextBarkSequenceIndex < playbackOrder.Count && isTriggeringObjectInside && currentTriggererTransform != null) + while (nextBarkSequenceIndex < playbackOrder.Count && isTriggeringObjectInside && currentTriggererTransform != null && _runtime_IsStarted) { - // Wait for BarkManager's AudioSource if it's busy - while (barkManager.IsPlaying && isTriggeringObjectInside) + while (barkManager.IsPlaying && isTriggeringObjectInside && _runtime_IsStarted) { - yield return null; // Wait a frame + yield return null; } - // Re-check condition after waiting, player might have left - if (!isTriggeringObjectInside || currentTriggererTransform == null) break; + if (!isTriggeringObjectInside || currentTriggererTransform == null || !_runtime_IsStarted) break; - - // Play the specific bark for this step in the sequence int barkIndexToPlay = playbackOrder[nextBarkSequenceIndex]; Debug.Log($"BarkPlayer ({gameObject.name}): Playing Bark {nextBarkSequenceIndex + 1}/{playbackOrder.Count} (Actual Index: {barkIndexToPlay}) from Entry {currentManagerEntryIndex}.", this); - // Play using the specific index, passing the triggerer's transform AudioClip playedClip = barkManager.PlayBark(currentManagerEntryIndex, currentTriggererTransform, barkIndexToPlay); + nextBarkSequenceIndex++; - nextBarkSequenceIndex++; // Increment progress within this entry's sequence - - // Wait for the bark's duration plus the inter-bark delay float waitTime = delayBetweenBarks; - if (playedClip != null) { waitTime += Mathf.Max(0f, playedClip.length); } // Ensure non-negative length + if (playedClip != null) { waitTime += Mathf.Max(0f, playedClip.length); } - // Perform the wait, checking continuously if the player leaves if (waitTime > 0) { float timer = 0f; - while (timer < waitTime && isTriggeringObjectInside && currentTriggererTransform != null) + while (timer < waitTime && isTriggeringObjectInside && currentTriggererTransform != null && _runtime_IsStarted) { timer += Time.deltaTime; - yield return null; // Wait one frame + yield return null; } } else { - // Minimum one frame wait even if no delay/clip length yield return null; } - // If player left during wait, break inner loop - if (!isTriggeringObjectInside || currentTriggererTransform == null) break; + if (!isTriggeringObjectInside || currentTriggererTransform == null || !_runtime_IsStarted) break; + } - } // --- End of Inner Loop (Barks within Entry) --- - - - // --- Step 3: Transition to Next Entry (if player didn't exit) --- - if (isTriggeringObjectInside && currentTriggererTransform != null) + if (isTriggeringObjectInside && currentTriggererTransform != null && _runtime_IsStarted) { - // Current entry sequence finished normally Debug.Log($"BarkPlayer ({gameObject.name}): Finished sequence for Entry {currentManagerEntryIndex}.", this); + currentEntryArrayIndex++; + m_saveData.savedNextBarkSequenceIndex = 0; // Reset for next entry - currentEntryArrayIndex++; // Move to the next entry index in the array - - // Check for wrapping / end of all entries in the array if (currentEntryArrayIndex >= barkManagerEntryIndices.Length) { Debug.Log($"BarkPlayer ({gameObject.name}): Finished all entries in the array. Looping back.", this); - currentEntryArrayIndex = 0; // Loop back to the start of the array + currentEntryArrayIndex = 0; } - // Wait for the specified delay BETWEEN entries if (delayBetweenEntries > 0) { Debug.Log($"BarkPlayer ({gameObject.name}): Waiting {delayBetweenEntries}s before next entry.", this); float timer = 0f; - while (timer < delayBetweenEntries && isTriggeringObjectInside && currentTriggererTransform != null) + while (timer < delayBetweenEntries && isTriggeringObjectInside && currentTriggererTransform != null && _runtime_IsStarted) { timer += Time.deltaTime; - yield return null; // Wait one frame + yield return null; } - // If player left during delay, break outer loop - if (!isTriggeringObjectInside || currentTriggererTransform == null) break; + if (!isTriggeringObjectInside || currentTriggererTransform == null || !_runtime_IsStarted) break; } - // The outer loop will then continue, preparing the next entry } + } - } // --- End of Outer Loop (isTriggeringObjectInside) --- - - Debug.Log($"BarkPlayer ({gameObject.name}): Playback loop finished (Triggering object left or component stopped).", this); - // Clear coroutine reference *if* this coroutine instance is the one finishing - if (currentPlaybackCoroutine != null && (!isTriggeringObjectInside || currentTriggererTransform == null)) + Debug.Log($"BarkPlayer ({gameObject.name}): Playback loop finished.", this); + // Only clear if this instance of the coroutine is the one stopping. + // If StopPlayer() was called, it would have already nulled currentPlaybackCoroutine. + if (currentPlaybackCoroutine == this.currentPlaybackCoroutine) // Check if this is still the active coroutine { - currentPlaybackCoroutine = null; + currentPlaybackCoroutine = null; } } @@ -419,60 +376,57 @@ namespace Beyond // Ensure this namespace matches your project #region Public Control Methods - /// - /// Enables the BarkPlayer's runtime operation. It will start playing sequences when triggered. - /// If a triggering object is already inside, playback may start immediately. - /// - [Button] // Example for Odin Inspector button + [Button] public void StartPlayer() { if (!_runtime_IsStarted) { - Debug.Log($"BarkPlayer ({gameObject.name}): Player Runtime Started.", this); + Debug.Log($"BarkPlayer ({gameObject.name}): Player Runtime Explicitly Started.", this); _runtime_IsStarted = true; - // If already initialized, check if we need to immediately start playback + // Clear any previously saved next bark index when explicitly starting, + // unless shuffle settings are the same and we are on the same entry. + // This is tricky. For now, CheckForAutoStartIfInside will rely on PrepareEntrySequence + // to correctly determine if it should resume. + // m_saveData.savedNextBarkSequenceIndex = 0; // Maybe too aggressive. + if (isInitialized) { CheckForAutoStartIfInside(); } } + else + { + Debug.Log($"BarkPlayer ({gameObject.name}): Player Runtime was already started.", this); + } } - /// - /// Disables the BarkPlayer's runtime operation. Stops any current playback and ignores future triggers. - /// - [Button] // Example for Odin Inspector button + [Button] public void StopPlayer() { if (_runtime_IsStarted) { - Debug.Log($"BarkPlayer ({gameObject.name}): Player Runtime Stopped.", this); + Debug.Log($"BarkPlayer ({gameObject.name}): Player Runtime Explicitly Stopped.", this); _runtime_IsStarted = false; - // Stop any currently running playback coroutine if (currentPlaybackCoroutine != null) { StopCoroutine(currentPlaybackCoroutine); - currentPlaybackCoroutine = null; // Clear the reference - Debug.Log($"BarkPlayer ({gameObject.name}): Stopping active playback loop.", this); - // Optional: Immediately stop BarkManager audio? - // if (barkManager != null && barkManager.IsPlaying) barkManager.m_audioSource.Stop(); + currentPlaybackCoroutine = null; + Debug.Log($"BarkPlayer ({gameObject.name}): Stopping active playback loop due to StopPlayer call.", this); } } } - /// - /// Checks if the player is currently inside the trigger and starts the playback loop - /// if the BarkPlayer is started (_runtime_IsStarted=true) but the loop isn't currently running. - /// Useful after initialization (in Start) or after calling StartPlayer manually. - /// private void CheckForAutoStartIfInside() { + // This is called from Start() and StartPlayer() if (_runtime_IsStarted && isTriggeringObjectInside && currentTriggererTransform != null && currentPlaybackCoroutine == null && isInitialized) { - Debug.Log($"BarkPlayer ({gameObject.name}): Triggering object already inside and player is started. Starting playback loop.", this); - // Ensure indices are correctly set from save data before starting + Debug.Log($"BarkPlayer ({gameObject.name}): Conditions met for auto-start. Object inside, player started, no active coroutine. Starting playback loop.", this); + // Ensure currentEntryArrayIndex is correctly set from save data before starting + // (it should already be from Start() or ApplyData(), but good to be sure) currentEntryArrayIndex = Mathf.Clamp(m_saveData.savedCurrentEntryArrayIndex, 0, Mathf.Max(0, barkManagerEntryIndices.Length - 1)); + // nextBarkSequenceIndex will be determined by PrepareEntrySequence currentPlaybackCoroutine = StartCoroutine(ContinuousPlaybackLoop()); } } @@ -483,66 +437,72 @@ namespace Beyond // Ensure this namespace matches your project public override string RecordData() { - // Update save data container with current runtime state m_saveData.savedIsStarted = this._runtime_IsStarted; m_saveData.savedCurrentEntryArrayIndex = this.currentEntryArrayIndex; - m_saveData.savedNextBarkSequenceIndex = this.nextBarkSequenceIndex; - m_saveData.wasShuffled = this.shuffleOrder; // Record shuffle setting at time of save + // Only save nextBarkSequenceIndex if a coroutine is running and we are "mid-sequence" + // Otherwise, it should be 0 for the next entry. + if (currentPlaybackCoroutine != null && nextBarkSequenceIndex > 0 && nextBarkSequenceIndex < (playbackOrder?.Count ?? 0)) + { + m_saveData.savedNextBarkSequenceIndex = this.nextBarkSequenceIndex; + } + else + { + // If not actively playing a sequence or at the start/end, save 0. + // This means when loading, it will either start the currentEntryArrayIndex from the beginning, + // or if currentEntryArrayIndex was incremented after an entry finished, it will start the *new* entry from beginning. + m_saveData.savedNextBarkSequenceIndex = 0; + } + m_saveData.wasShuffled = this.shuffleOrder; - // Serialize the save data container return SaveSystem.Serialize(m_saveData); } public override void ApplyData(string s) { - // Handle case where there is no save data for this component if (string.IsNullOrEmpty(s)) { - // No save data - runtime state keeps the value set by startAutomaticallyOnLoad in Awake _runtime_IsStarted = startAutomaticallyOnLoad; - // Reset progress indices if no save data + m_saveData = new BarkPlayerData(); // Ensure fresh save data container + m_saveData.savedIsStarted = _runtime_IsStarted; // Sync with runtime m_saveData.savedCurrentEntryArrayIndex = 0; m_saveData.savedNextBarkSequenceIndex = 0; - Debug.Log($"BarkPlayer ({gameObject.name}): No save data found, using startAutomaticallyOnLoad ({startAutomaticallyOnLoad}).", this); + m_saveData.wasShuffled = shuffleOrder; // Use current inspector setting + Debug.Log($"BarkPlayer ({gameObject.name}): No save data, using startAutomaticallyOnLoad ({_runtime_IsStarted}).", this); return; } - // Deserialize the saved data string var loadedData = SaveSystem.Deserialize(s); if (loadedData != null) { - m_saveData = loadedData; // Store the loaded data - // Apply the loaded runtime state + m_saveData = loadedData; this._runtime_IsStarted = m_saveData.savedIsStarted; - // Indices will be applied in Start() / PrepareEntrySequence() using m_saveData - Debug.Log($"BarkPlayer ({gameObject.name}): Applied loaded data. Started={_runtime_IsStarted}, EntryIdx={m_saveData.savedCurrentEntryArrayIndex}, BarkIdx={m_saveData.savedNextBarkSequenceIndex}.", this); + // currentEntryArrayIndex and nextBarkSequenceIndex will be used by Start() and PrepareEntrySequence() + Debug.Log($"BarkPlayer ({gameObject.name}): Applied loaded data. Started={_runtime_IsStarted}, EntryIdx={m_saveData.savedCurrentEntryArrayIndex}, BarkIdx={m_saveData.savedNextBarkSequenceIndex}, WasShuffled={m_saveData.wasShuffled}.", this); } else { Debug.LogError($"BarkPlayer ({gameObject.name}): Failed to deserialize save data. Using defaults.", this); - // Fallback: use inspector setting if deserialize failed - this._runtime_IsStarted = startAutomaticallyOnLoad; + _runtime_IsStarted = startAutomaticallyOnLoad; + m_saveData = new BarkPlayerData(); + m_saveData.savedIsStarted = _runtime_IsStarted; m_saveData.savedCurrentEntryArrayIndex = 0; m_saveData.savedNextBarkSequenceIndex = 0; + m_saveData.wasShuffled = shuffleOrder; } - // After applying data, ensure consistency: if loaded state is 'stopped', stop coroutine + // After applying data, if loaded state is 'stopped', ensure coroutine is also stopped. + // CheckForAutoStartIfInside in Start() will handle restarting if needed. if (!this._runtime_IsStarted && currentPlaybackCoroutine != null) { StopCoroutine(currentPlaybackCoroutine); currentPlaybackCoroutine = null; } - // The CheckForAutoStartIfInside() call in Start() will handle restarting the - // coroutine if the loaded state is 'started' and the player is inside the trigger. } #endregion #region Helper Methods - - /// Helper to find the largest component of a Vector3 (for Gizmos). private float MaxComponent(Vector3 v) => Mathf.Max(Mathf.Max(v.x, v.y), v.z); - #endregion } } \ No newline at end of file