diff --git a/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav b/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav similarity index 100% rename from Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav rename to Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav diff --git a/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta b/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta similarity index 91% rename from Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta rename to Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta index 3c74822..0adefb0 100644 --- a/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta +++ b/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f4b0a8f2836d299438e963287f02095a +guid: 2e31de0a81a86594c85511f19aa41794 AudioImporter: externalObjects: {} serializedVersion: 6 diff --git a/Assets/images/avatars.meta b/Assets/images/avatars.meta new file mode 100644 index 0000000..6d9a0b3 --- /dev/null +++ b/Assets/images/avatars.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb764beed74cec044ab9adab35638376 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/images/avatars/captainIcon.png b/Assets/images/avatars/captainIcon.png new file mode 100644 index 0000000..f756caf Binary files /dev/null and b/Assets/images/avatars/captainIcon.png differ diff --git a/Assets/images/avatars/captainIcon.png.meta b/Assets/images/avatars/captainIcon.png.meta new file mode 100644 index 0000000..d16a284 --- /dev/null +++ b/Assets/images/avatars/captainIcon.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: dc6659970b4207945ab5a543fcdf0033 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/images/avatars/pilotIcon.png b/Assets/images/avatars/pilotIcon.png new file mode 100644 index 0000000..94fb0bb Binary files /dev/null and b/Assets/images/avatars/pilotIcon.png differ diff --git a/Assets/images/avatars/pilotIcon.png.meta b/Assets/images/avatars/pilotIcon.png.meta new file mode 100644 index 0000000..430b7ab --- /dev/null +++ b/Assets/images/avatars/pilotIcon.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: 57d6ba117edc86a448219c2c49ffd072 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/images/avatars/voiceAssistantIcon.png b/Assets/images/avatars/voiceAssistantIcon.png new file mode 100644 index 0000000..9e124c0 Binary files /dev/null and b/Assets/images/avatars/voiceAssistantIcon.png differ diff --git a/Assets/images/avatars/voiceAssistantIcon.png.meta b/Assets/images/avatars/voiceAssistantIcon.png.meta new file mode 100644 index 0000000..0ea62ad --- /dev/null +++ b/Assets/images/avatars/voiceAssistantIcon.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: db16f89f936a28e449b12d24d5fa8310 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/prefabs/Dialog/avatars.meta b/Assets/prefabs/Dialog/avatars.meta new file mode 100644 index 0000000..05e9126 --- /dev/null +++ b/Assets/prefabs/Dialog/avatars.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e35c1f4540c0a184e93f806287212113 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/prefabs/Dialog/avatars/captainAvatar Variant.prefab b/Assets/prefabs/Dialog/avatars/captainAvatar Variant.prefab new file mode 100644 index 0000000..45c5886 --- /dev/null +++ b/Assets/prefabs/Dialog/avatars/captainAvatar Variant.prefab @@ -0,0 +1,103 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &6356406092452763783 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3750784060721673617, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_Name + value: captainAvatar + objectReference: {fileID: 0} + - target: {fileID: 6646545994519980302, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: dc6659970b4207945ab5a543fcdf0033, type: 3} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_SizeDelta.x + value: 108.4909 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_SizeDelta.y + value: 153.0323 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_AnchoredPosition.x + value: 125 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_AnchoredPosition.y + value: 366.3 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6914633588194135811, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 47c26c516e4ad5f4ab294bbeca7ecbed, type: 3} diff --git a/Assets/prefabs/Dialog/avatars/captainAvatar Variant.prefab.meta b/Assets/prefabs/Dialog/avatars/captainAvatar Variant.prefab.meta new file mode 100644 index 0000000..c030191 --- /dev/null +++ b/Assets/prefabs/Dialog/avatars/captainAvatar Variant.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fdc4a3b308b524944aec017148206a92 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/prefabs/Dialog/avatars/pilotAvatar.prefab b/Assets/prefabs/Dialog/avatars/pilotAvatar.prefab new file mode 100644 index 0000000..45b0074 --- /dev/null +++ b/Assets/prefabs/Dialog/avatars/pilotAvatar.prefab @@ -0,0 +1,77 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3750784060721673617 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6914633588194135811} + - component: {fileID: 2821719155475895382} + - component: {fileID: 6646545994519980302} + m_Layer: 5 + m_Name: pilotAvatar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6914633588194135811 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3750784060721673617} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 125, y: 373} + m_SizeDelta: {x: 149, y: 149.6399} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2821719155475895382 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3750784060721673617} + m_CullTransparentMesh: 1 +--- !u!114 &6646545994519980302 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3750784060721673617} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + 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: 21300000, guid: 57d6ba117edc86a448219c2c49ffd072, 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 diff --git a/Assets/prefabs/Dialog/avatars/pilotAvatar.prefab.meta b/Assets/prefabs/Dialog/avatars/pilotAvatar.prefab.meta new file mode 100644 index 0000000..b4ef024 --- /dev/null +++ b/Assets/prefabs/Dialog/avatars/pilotAvatar.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 47c26c516e4ad5f4ab294bbeca7ecbed +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/prefabs/Dialog/avatars/voiceAssistantAvatar Variant.prefab b/Assets/prefabs/Dialog/avatars/voiceAssistantAvatar Variant.prefab new file mode 100644 index 0000000..f050f9d --- /dev/null +++ b/Assets/prefabs/Dialog/avatars/voiceAssistantAvatar Variant.prefab @@ -0,0 +1,103 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &288783116824227705 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 291392520832561545, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: db16f89f936a28e449b12d24d5fa8310, type: 3} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_SizeDelta.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_SizeDelta.y + value: 116.1481 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_AnchoredPosition.x + value: 125 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_AnchoredPosition.y + value: 373 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 559514207965239172, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7798839904708177174, guid: fdc4a3b308b524944aec017148206a92, type: 3} + propertyPath: m_Name + value: voiceAssistantAvatar + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: fdc4a3b308b524944aec017148206a92, type: 3} diff --git a/Assets/prefabs/Dialog/avatars/voiceAssistantAvatar Variant.prefab.meta b/Assets/prefabs/Dialog/avatars/voiceAssistantAvatar Variant.prefab.meta new file mode 100644 index 0000000..1dd0087 --- /dev/null +++ b/Assets/prefabs/Dialog/avatars/voiceAssistantAvatar Variant.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 360074e5f0b89134dae58f5d8d0c50c6 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/scripts/dialogSystem/AudioPlayer.cs b/Assets/scripts/dialogSystem/AudioPlayer.cs index 9e7002a..c1a1661 100644 --- a/Assets/scripts/dialogSystem/AudioPlayer.cs +++ b/Assets/scripts/dialogSystem/AudioPlayer.cs @@ -7,9 +7,9 @@ public class AudioPlayer : MonoBehaviour public delegate void AudioPlayerStopsCommit(); private AudioSource _audioPlayer; private List _stopsCommits; + private bool _play; void Awake() { - Debug.Log("shit"); _audioPlayer = gameObject.GetComponent(); _stopsCommits = new List(); } @@ -20,15 +20,20 @@ public class AudioPlayer : MonoBehaviour public void PlayAudio(AudioClip audio) { _audioPlayer.clip = audio; - _audioPlayer.Play(); + _audioPlayer.Play(); + _play = true; } void Update() { - if (!_audioPlayer.isPlaying) { + if (!_audioPlayer.isPlaying && _play) { + Debug.Log(_stopsCommits.Count.ToString() + "commits"); for (int i = 0; i < _stopsCommits.Count; ++i) { + if (_stopsCommits[i] == null) continue; _stopsCommits[i](); + _stopsCommits[i] = null; } _stopsCommits = new List(); + _play = false; } } } diff --git a/Assets/scripts/dialogSystem/AudioVisualizer.cs b/Assets/scripts/dialogSystem/AudioVisualizer.cs index ca10048..3f62adf 100644 --- a/Assets/scripts/dialogSystem/AudioVisualizer.cs +++ b/Assets/scripts/dialogSystem/AudioVisualizer.cs @@ -13,31 +13,85 @@ public class AudioVisualizer : MonoBehaviour _role = role; } } + private GameObject _avatar; + [SerializeField] + private GameObject _captainAvatar; + [SerializeField] + private GameObject _pilotAvatar; + [SerializeField] + private GameObject _voiceAssistantAvatar; private AudioVisualizerData data; [SerializeField] private Canvas _canvasOverlay; private AudioVisualizerData _visualizerData; - void Start() { if (GameObject.FindGameObjectsWithTag("dialog_canvas").Length == 0) { Instantiate(_canvasOverlay, Vector3.zero, Quaternion.identity); } } - public void changeAudioVisualizerData(AudioVisualizerData visualizerData) { + IEnumerator setText() { Text content = GameObject.FindGameObjectWithTag("dialog_content").GetComponent(); - content.text = visualizerData._text; - Text name = GameObject.FindGameObjectWithTag("dialog_name").GetComponent(); - switch (visualizerData._role) { - case Roles.CAPTAIN: - name.text = "Капитан"; - break; - case Roles.PILOT: - name.text = "Пилот"; - break; - case Roles.VOICE_ASSISTANT: - name.text = "Голосовой помощник"; - break; + content.text = ""; + foreach(char i in _visualizerData._text) { + content.text += i; + yield return new WaitForSeconds(0.05f); } } + string RoleToString(Roles role) { + string res = ""; + switch (role) { + case Roles.CAPTAIN: + res = "Капитан"; + break; + case Roles.PILOT: + res = "Пилот"; + break; + case Roles.VOICE_ASSISTANT: + res = "Голосовой помощник"; + break; + case Roles.CAPTAIN_IN_IMAGINATION: + res = "Капитан (воспоминание)"; + break; + case Roles.VOICE_ASSISTANT_IN_IMAGINATION: + res = "Elizabeth (воспоминание)"; + break; + } + return res; + } + IEnumerator setHeader() { + Text name = GameObject.FindGameObjectWithTag("dialog_name").GetComponent(); + name.text = ""; + string nameText = RoleToString(_visualizerData._role); + foreach(char i in nameText) { + name.text += i; + yield return new WaitForSeconds(0.05f); + } + } + public void changeAudioVisualizerData(AudioVisualizerData visualizerData) { + Canvas canvas = Object.FindObjectOfType(); + Text content = GameObject.FindGameObjectWithTag("dialog_content").GetComponent(); + _visualizerData = visualizerData; + StartCoroutine("setText"); + StartCoroutine("setHeader"); + Destroy(_avatar); + switch(visualizerData._role) { + case Roles.CAPTAIN: + _avatar = Instantiate(_captainAvatar, _captainAvatar.transform.position, Quaternion.identity); + break; + case Roles.PILOT: + _avatar = Instantiate(_pilotAvatar, _pilotAvatar.transform.position, Quaternion.identity); + break; + case Roles.VOICE_ASSISTANT: + _avatar = Instantiate(_voiceAssistantAvatar, _voiceAssistantAvatar.transform.position, Quaternion.identity); + break; + case Roles.CAPTAIN_IN_IMAGINATION: + _avatar = Instantiate(_captainAvatar, _captainAvatar.transform.position, Quaternion.identity); + break; + case Roles.VOICE_ASSISTANT_IN_IMAGINATION: + _avatar = Instantiate(_voiceAssistantAvatar, _voiceAssistantAvatar.transform.position, Quaternion.identity); + break; + } + _avatar.transform.SetParent(canvas.transform, false); + } } diff --git a/Assets/scripts/dialogSystem/DialogData.cs b/Assets/scripts/dialogSystem/DialogData.cs new file mode 100644 index 0000000..1a05591 --- /dev/null +++ b/Assets/scripts/dialogSystem/DialogData.cs @@ -0,0 +1,230 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public static class DialogData{ + public static DialogDataClass[] FirstScene = { + new DialogDataClass( + "Ваш корабль поврежден, нужен срочный ремонт", + Roles.CAPTAIN, + Resources.Load("audio/капитан/ваш корабль поврежден") + ), + new DialogDataClass( + "Жду подробностей повреждения", + Roles.PILOT, + Resources.Load("audio/пилот/жду подробностей повреждения") + ), + new DialogDataClass( + "Подробности высланы вам на почту, проверьте", + Roles.CAPTAIN, + Resources.Load("audio/капитан/подробности высланы") + ) + }; + + public static DialogDataClass[] SecondSceneFirstAction = { + new DialogDataClass( + "Файл доставлен, в нем обнаружены повреждения", + Roles.VOICE_ASSISTANT, + Resources.Load("audio/голосовой помощник/Файл доставлен") + ), + new DialogDataClass( + "О черт, опять этот баг, надо будет написать админам чтобы уже наконец исправили проблемы с кодировками. Ладно, давай посмотрим, что тут случилось", + Roles.PILOT, + Resources.Load("audio/пилот/о черт, опять этот баг") + ) + }; + public static DialogDataClass[] SecondSceneSecondAction = { + new DialogDataClass( + "В этот раз файл поврежден очень сильно, надо его открыть и посмотреть что в нем сохранилось", + Roles.PILOT, + Resources.Load("audio/пилот/в этот раз файл порвежден очень сильно") + ), + }; + public static DialogDataClass[] ThirdSceneAction = { + new DialogDataClass( + "Elizabeth, сделай анализ утечек", + Roles.PILOT, + Resources.Load("audio/пилот/сделай анализ утечек") + ), + new DialogDataClass( + "Утечки в гиперпространстве, чтобы восстановить исходный файл вам надо немного помучаться", + Roles.VOICE_ASSISTANT, + Resources.Load("чтобы восстановить файл") + ), + new DialogDataClass( + "Пилот, мы приготовили тебе последнее твое задание, после которого мы все рискуем умереть и погубить весь экипаж, либо ты станешь настоящим специалистом своего дела и будешь командовать отделом", + Roles.CAPTAIN, + Resources.Load("audio/капитан/пилот, мы приготовили твое задание") + ), + new DialogDataClass( + "Какое задание?", + Roles.PILOT, + Resources.Load("audio/пилот/какое задание") + ), + new DialogDataClass( + "Устрани неисправности на корабле, тогда ты докажешь свой профессионализм", + Roles.CAPTAIN, + Resources.Load("audio/капитан/устрани неисправности") + ), + new DialogDataClass( + "Есть", + Roles.PILOT, + Resources.Load("audio/пилот/есть") + ) + }; + public static DialogDataClass[] FourthSceneFirstAction = { + new DialogDataClass( + "Для этого мне нужна карта корабля с нанесенными повреждениями, а она как назло не пришла в чистом виде, да еще это гиперпространство...", + Roles.PILOT, + Resources.Load("audio/пилот/для этого мне нужна карта корабля") + ) + }; + public static DialogDataClass[] FourthSceneSecondAction = { + new DialogDataClass( + "Точно, это двигательный отсек, в нем вечно происходят проблемы, но я не помню код от этого щитка", + Roles.PILOT, + Resources.Load("audio/пилот/Точно это двигательный отсек") + ), + new DialogDataClass( + "Ты на правильном пути, ученик мой, разгадай эту загадку тогда ты откроешь щиток", + Roles.CAPTAIN, + Resources.Load("audio/капитан/ты на правильном пути") + ) + }; + public static DialogDataClass[] FourthSceneThirdAction = { + new DialogDataClass( + "Молодец, ты открыл щиток", + Roles.CAPTAIN, + Resources.Load("audio/капитан/молодец, ты открыл щиток") + ), + new DialogDataClass( + "Спасибо, кэп", + Roles.PILOT, + Resources.Load("audio/пилот/спасибо, кэп") + ), + new DialogDataClass( + "О, кажется я нашел кусок файла, странно, как он мог затеряться в реальном мире, надо будет сообщить админам", + Roles.PILOT, + Resources.Load("audio/пилот/О, кажется я нашел кусок файла") + ) + }; + public static DialogDataClass[] FourthSceneFourthAction = { + new DialogDataClass( + "Отлично, давай посмотрим карту", + Roles.PILOT, + Resources.Load("audio/пилот/Отлично, давай посмотрим карту") + ) + }; + public static DialogDataClass[] FourthSceneFiftAction = { + new DialogDataClass( + "Здесь указано, куда идти, надо попробовать", + Roles.PILOT, + Resources.Load("audio/пилот/Здесь указано куда идти") + ) + }; + public static DialogDataClass[] FiftSceneAction = { + new DialogDataClass( + "Наконец-то я пришел к двигателю....но кажется есть проблема, тут очень темно, надо вернуться за фонариком", + Roles.PILOT, + Resources.Load("audio/пилот/наконец-то я пришел к двигателю") + ) + }; + public static DialogDataClass[] SixthSceneFirstAction = { + new DialogDataClass( + "Тааак, где тут фонарик? я его прятал где-то в ящиках, но их тут просто очень много, как мне их все посмотреть?", + Roles.PILOT, + Resources.Load("audio/пилот/таак, где тут фонарик") + ), + new DialogDataClass( + "Ты умрешь и погубишь весь экипаж", + Roles.CAPTAIN_IN_IMAGINATION, + Resources.Load("audio/капитан/устрани неисправности") + ), + new DialogDataClass( + "Надо срочно действовать, помоги мне найти среди этих ящиков фонарь", + Roles.PILOT, + Resources.Load("audio/пилот/Надо срочно действовать") + ), + }; + public static DialogDataClass[] SixthSceneSecondAction = { + new DialogDataClass( + "О, мы нашли фонарь, теперь давай скорее бежать чинить двигатель, хотя..", + Roles.PILOT, + Resources.Load("audio/пилот/О мы нашли фонарь") + ), + new DialogDataClass( + "Утечки в гиперпространстве, чтобы восстановить исходный файл вам придется НеМнОгО ПоМуЧаТьСя", + Roles.VOICE_ASSISTANT_IN_IMAGINATION, + Resources.Load("audio/голосовой помощник/чтобы восстановить файл") + ), + new DialogDataClass( + "Я совсем забыл, я же не знаю где поломка, а без нее я не смогу починить корабль, попробуй найти кусок карты в тех же ящиках что ты искал фонарь, может он затаился там", + Roles.PILOT, + Resources.Load("audio/пилот/Я совсем забыл, я же не знаю где поломка") + ) + }; + public static DialogDataClass[] SixthSceneThirdAction = { + new DialogDataClass( + "ООО, вот и кусок карты", + Roles.PILOT, + Resources.Load("audio/пилот/О, вот и кусок карты") + ) + }; + public static DialogDataClass[] SixthSceneFourthAction = { + new DialogDataClass( + "Посмотри, теперь мы можем видеть, где поломка у корабля, пойдем скорее к двигателю и починим корабль.", + Roles.PILOT, + Resources.Load("audio/пилот/Смотри, теперь мы можем видеть, где поломка у корабля") + ) + }; + public static DialogDataClass[] SeventhSceneFirstAction = { + new DialogDataClass( + "Вот, мы у двигателя, все видно, в карте есть информация по поломке, дело за малым - починить двигатель. Хммм, но тут нужен явно гаечный ключ, надо открутить вот этот щиток.", + Roles.PILOT, + Resources.Load("audio/пилот/Вот мы у двигателя") + ), + new DialogDataClass( + "О нет, у нас совсем мало времени. Надо что-то срочно предпринять.", + Roles.PILOT, + Resources.Load("audio/пилот/о нет, у нас совсем мало времени") + ) + }; + public static DialogDataClass[] SeventhSceneSecondAction = { + new DialogDataClass( + "Хмм, что это за ящик, вечно этот штурман забудет что-нибудь убрать. Попробую открыть его, тут какая-то головоломка.", + Roles.PILOT, + Resources.Load("audio/пилот/мм, что это за ящик") + ), + }; + public static DialogDataClass[] SeventhSceneThirdAction = { + new DialogDataClass( + "Тут как раз есть ключ, надо его взять", + Roles.PILOT, + Resources.Load("audio/пилот/тут как раз есть ключ, надо его взять") + ), + }; + public static DialogDataClass[] EightScene = { + new DialogDataClass( + "Фух, получилось", + Roles.PILOT, + Resources.Load("audio/пилот/Фух, получилось") + ), + new DialogDataClass( + "Поздравляю, ты справился, я напишу приказ чтобы тебя повысили", + Roles.CAPTAIN, + Resources.Load("audio/капитан/поздравля, ты справился") + ) + }; +} + + +public struct DialogDataClass { + public string text; + public Roles role; + public AudioClip audio; + public DialogDataClass(string text, Roles role, AudioClip audio) { + this.text = text; + this.role = role; + this.audio = audio; + } +} \ No newline at end of file diff --git a/Assets/scripts/dialogSystem/DialogData.cs.meta b/Assets/scripts/dialogSystem/DialogData.cs.meta new file mode 100644 index 0000000..3f23fed --- /dev/null +++ b/Assets/scripts/dialogSystem/DialogData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f31da9a71ee5064488c04c9bdbb85a78 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/scripts/dialogSystem/DialogPlayer.cs b/Assets/scripts/dialogSystem/DialogPlayer.cs index c95ce96..00dfa5d 100644 --- a/Assets/scripts/dialogSystem/DialogPlayer.cs +++ b/Assets/scripts/dialogSystem/DialogPlayer.cs @@ -10,42 +10,70 @@ public class DialogPlayer : MonoBehaviour AudioPlayer _audioPlayer; [SerializeField] AudioVisualizer _audioVisualizer; - private AudioClip _audio; + + DialogDataClass[] _dialogData; + + int _idx = 0; + Replica _currentReplica; + + void changeDialogData(DialogDataClass[] dialogData){ + _dialogData = dialogData; + _idx = 0; + _currentReplica = createReplica(); + _currentReplica.Play(); + } + + void playReplica(int idx) { + if (idx >= DialogData.FirstScene.Length) return; + //Debug.Log(idx.ToString() + DialogData.FirstScene[idx].text); + + Replica replica = new Replica( + DialogData.FirstScene[idx].audio, + new AudioVisualizer.AudioVisualizerData( + text: _dialogData[idx].text, + role: _dialogData[idx].role + ), + _audioPlayer, + () => { + Debug.Log(idx); + playReplica(idx+1); + }, + _audioVisualizer + ); + replica.Play(); + } + + Replica createReplica() { + Replica replica = new Replica( + _dialogData[_idx].audio, + new AudioVisualizer.AudioVisualizerData( + text: _dialogData[_idx].text, + role: _dialogData[_idx].role + ), + _audioPlayer, + () => {}, + _audioVisualizer + ); + return replica; + } + void Start() { - _audio = Resources.Load("audio/пилот/есть"); - Replica another_rep = new Replica( - _audio, - new AudioVisualizer.AudioVisualizerData( - "asdfsadf", - role: Roles.PILOT - ), - _audioPlayer, - - () => { - Debug.Log("fuck"); - }, - _audioVisualizer - ); - Replica rep = new Replica( - _audio, - new AudioVisualizer.AudioVisualizerData( - "Есть", - role: Roles.PILOT - ), - _audioPlayer, - - () => { - another_rep.Play(); - }, - _audioVisualizer - ); - rep.Play(); + _dialogData = DialogData.FirstScene; + _audioPlayer = Object.FindObjectOfType(); + _audioVisualizer = Object.FindObjectOfType(); + _currentReplica = createReplica(); + _currentReplica.Play(); } // Update is called once per frame void Update() { - + if (_idx >= _dialogData.Length-1) return; + if (_currentReplica.getIsEnded()) { + _idx++; + _currentReplica = createReplica(); + _currentReplica.Play(); + } } } diff --git a/Assets/scripts/dialogSystem/Replica.cs b/Assets/scripts/dialogSystem/Replica.cs index 0ef3fd4..889cf7e 100644 --- a/Assets/scripts/dialogSystem/Replica.cs +++ b/Assets/scripts/dialogSystem/Replica.cs @@ -8,11 +8,15 @@ public class Replica { private AudioPlayer.AudioPlayerStopsCommit _onStop; private AudioPlayer _audioPlayer; private AudioVisualizer _audioVisualizer; + private bool isEnded = false; + + public bool getIsEnded() { + return isEnded; + } public Replica(AudioClip clip, AudioVisualizer.AudioVisualizerData visualizerData, AudioPlayer audioPlayer, AudioPlayer.AudioPlayerStopsCommit onStop, AudioVisualizer audioVisualizer) { _clip = clip; _audioPlayer = audioPlayer; - _onStop = onStop; _audioVisualizer = audioVisualizer; _visualizerData = visualizerData; } @@ -20,7 +24,9 @@ public class Replica { public void Play() { _audioPlayer.PlayAudio(_clip); - _audioPlayer.addStopListener(_onStop); + _audioPlayer.addStopListener(() => { + isEnded = true; + }); _audioVisualizer.changeAudioVisualizerData(_visualizerData); } } diff --git a/Assets/scripts/dialogSystem/Roles.cs b/Assets/scripts/dialogSystem/Roles.cs index ed85866..896a206 100644 --- a/Assets/scripts/dialogSystem/Roles.cs +++ b/Assets/scripts/dialogSystem/Roles.cs @@ -5,5 +5,7 @@ using UnityEngine; public enum Roles { PILOT, VOICE_ASSISTANT, - CAPTAIN + CAPTAIN, + CAPTAIN_IN_IMAGINATION, + VOICE_ASSISTANT_IN_IMAGINATION } \ No newline at end of file