Assets/00000/package/Materials/Glow_003_b.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Glow_003 1 m_Name: Glow_003_b m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Glow_012_b.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Glow_012 1 m_Name: Glow_012_b m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Glow_029_02.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Glow_029_b m_Name: Glow_029_02 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Glow_039.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: ditu m_Name: Glow_039 m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Object_004.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Object_0014 m_Name: Object_004 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Object_005.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Object_0029 m_Name: Object_005 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Object_006.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: "\u7CBE\u70753" m_Name: Object_006 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Object_009.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: "1920\u6C34\u66761" m_Name: Object_009 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Sequence_005_4X3.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: 7e7ae91d-c194-4197-81f1-30d18678a08c m_Name: Sequence_005_4X3 m_Shader: {fileID: 200, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Sequence_006_6X5.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: 42c3f028-4755-4977-8544-0365321b0312 m_Name: Sequence_006_6X5 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Sequence_007_4X3.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: 218d2fa5-3080-44fd-8769-2dcbb57a589f m_Name: Sequence_007_4X3 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Sequence_008_6X4.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: c8cd391b-30df-4811-9715-3b8cdf8c36c6 m_Name: Sequence_008_6X4 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Sequence_009_3X2.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: ef115a70-dd8a-4420-9182-f650ae55c8da m_Name: Sequence_009_3X2 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 0 Assets/00000/package/Materials/Sequence_019_4X4_02.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Sequence_019_4X4_b m_Name: Sequence_019_4X4_02 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Sequence_022_4X4_02.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Sequence_022_4X4 1 m_Name: Sequence_022_4X4_02 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Sequence_024_9X8_b.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Sequence_024_9X8 1 m_Name: Sequence_024_9X8_b m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Texture/Texmap_003.png.meta
@@ -3,11 +3,11 @@ TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 10 serializedVersion: 11 mipmaps: mipMapMode: 0 enableMipMap: 0 sRGBTexture: 1 enableMipMap: 1 sRGBTexture: 0 linearTexture: 0 fadeOut: 0 borderMipMap: 0 @@ -23,6 +23,7 @@ isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -49,14 +50,16 @@ spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 alphaIsTransparency: 1 alphaIsTransparency: 0 spriteTessellationDetail: -1 textureType: 0 textureType: 1 textureShape: 1 singleChannelComponent: 0 maxTextureSizeSet: 0 compressionQualitySet: 0 textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 1 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform Assets/GabrielAguiarProductions/Unique_Projectiles_Volume_1/Scripts/ProjectileMoveScript.cs
@@ -50,10 +50,10 @@ } } if (shotSFX != null && GetComponent<AudioSource>()) { GetComponent<AudioSource>().PlayOneShot(shotSFX); } // if (shotSFX != null && GetComponent<AudioSource>()) // { // GetComponent<AudioSource>().PlayOneShot(shotSFX); // } // StartCoroutine(RecycleParticle(gameObject, recycleDelay)); } Assets/Resources/Music.meta
New file @@ -0,0 +1,8 @@ fileFormatVersion: 2 guid: 50373d69833fd2c4587aacb78149479e folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/BGM1.mp3Binary files differ
Assets/Resources/Music/BGM1.mp3.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 33c8d9123e51138469bc394b1d779b94 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/BGM2.mp3Binary files differ
Assets/Resources/Music/BGM2.mp3.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 6f2fb621b3ebc2c49a3e50032946657e AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/BOSS死亡.wavBinary files differ
Assets/Resources/Music/BOSS死亡.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: a8b59ef05212b344db6712b146dd2d49 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/UI按键.mp3Binary files differ
Assets/Resources/Music/UI按键.mp3.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 43808f08f96a2ed4c878dd497c285654 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/不可点击_错误.wavBinary files differ
Assets/Resources/Music/不可点击_错误.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 0782288ff0426494da2f384e99479605 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/拖动宝石时.wavBinary files differ
Assets/Resources/Music/拖动宝石时.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 742e0a01d32ae4442bfb87cd27dea761 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/放下宝石.wavBinary files differ
Assets/Resources/Music/放下宝石.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 8a482b8cb705ac14ca63365b3b5f4cf7 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/敌人攻击塔.wavBinary files differ
Assets/Resources/Music/敌人攻击塔.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: b4264295d9357fb4684313bd508f2d47 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/木攻击.wavBinary files differ
Assets/Resources/Music/木攻击.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 7df95920553c48542a42652d517d7bf9 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/水攻击.wavBinary files differ
Assets/Resources/Music/水攻击.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 1b2f3693228142947998df0e8083ab76 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/游戏结束.mp3Binary files differ
Assets/Resources/Music/游戏结束.mp3.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 8d05baf767f6c014da8dafb958119d55 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/火技能.wavBinary files differ
Assets/Resources/Music/火技能.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 9568b3c3314ba5e42ab333482d08136a AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/火攻击.wavBinary files differ
Assets/Resources/Music/火攻击.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: b034842bd9cf25e4f8428d69e5139efd AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/电技能.wavBinary files differ
Assets/Resources/Music/电技能.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 00215b7c90990e141b365e74e26b4085 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/翻书.wavBinary files differ
Assets/Resources/Music/翻书.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: d4487dcf24219ad4ba6a1c264dd56425 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/选择buff后.wavBinary files differ
Assets/Resources/Music/选择buff后.wav.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: 28f2776f5338e0d44af75342f26e20da AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Resources/Music/金币.mp3Binary files differ
Assets/Resources/Music/金币.mp3.meta
New file @@ -0,0 +1,22 @@ fileFormatVersion: 2 guid: c577492ad0798ba4ba37ae8aaa7794b9 AudioImporter: externalObjects: {} serializedVersion: 6 defaultSettings: loadType: 0 sampleRateSetting: 0 sampleRateOverride: 44100 compressionFormat: 1 quality: 1 conversionMode: 0 platformSettingOverrides: {} forceToMono: 0 normalize: 1 preloadAudioData: 1 loadInBackground: 0 ambisonic: 0 3D: 1 userData: assetBundleName: assetBundleVariant: Assets/Scenes/Levels/Battle/Endless.unity
@@ -1275,7 +1275,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &157430578 Transform: m_ObjectHideFlags: 0 @@ -2124,7 +2124,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &224279364 Transform: m_ObjectHideFlags: 0 @@ -2845,7 +2845,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &336125253 Transform: m_ObjectHideFlags: 0 @@ -5000,7 +5000,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &622947616 Transform: m_ObjectHideFlags: 0 @@ -5763,7 +5763,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &786912553 Transform: m_ObjectHideFlags: 0 @@ -7187,7 +7187,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &938609223 Transform: m_ObjectHideFlags: 0 @@ -7453,7 +7453,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &958509393 Transform: m_ObjectHideFlags: 0 @@ -7865,7 +7865,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1015273256 Transform: m_ObjectHideFlags: 0 @@ -8011,7 +8011,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1017486113 Transform: m_ObjectHideFlags: 0 @@ -9005,7 +9005,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1099308090 Transform: m_ObjectHideFlags: 0 @@ -9345,7 +9345,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1149459456 Transform: m_ObjectHideFlags: 0 @@ -10293,7 +10293,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1272628193 Transform: m_ObjectHideFlags: 0 @@ -10511,7 +10511,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1312099771 Transform: m_ObjectHideFlags: 0 @@ -12730,7 +12730,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1581489634 Transform: m_ObjectHideFlags: 0 @@ -13055,6 +13055,7 @@ m_Script: {fileID: 11500000, guid: 003fa822c2d516a488dcbbed96c8d9ab, type: 3} m_Name: m_EditorClassIdentifier: buyButtonScaler: 1.9 placementTilePrefab: {fileID: 114496876178851720, guid: 8ce97201eea4a404b86d7d0906b89847, type: 3} placementTilePrefabMobile: {fileID: 114496876178851720, guid: 18a440af7ac5d46c8af359534286c4bf, @@ -13823,7 +13824,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1719795769 Transform: m_ObjectHideFlags: 0 @@ -15400,7 +15401,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1900826878 Transform: m_ObjectHideFlags: 0 @@ -15687,7 +15688,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1930436492 Transform: m_ObjectHideFlags: 0 @@ -16111,19 +16112,7 @@ m_TargetGraphic: {fileID: 1953656509} m_OnClick: m_PersistentCalls: m_Calls: - m_Target: {fileID: 1953656507} m_TargetAssemblyTypeName: EndlessRandomTower, Assembly-CSharp m_MethodName: onClick m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_IntArgument: 0 m_FloatArgument: 0 m_StringArgument: m_BoolArgument: 0 m_CallState: 2 m_Calls: [] --- !u!114 &1953656509 MonoBehaviour: m_ObjectHideFlags: 0 @@ -16510,7 +16499,7 @@ m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1967975859} m_Enabled: 1 m_Enabled: 0 serializedVersion: 4 OutputAudioMixerGroup: {fileID: 243875498303300022, guid: c40bed98f23a748f89472abe9c1a6871, type: 2} @@ -16936,7 +16925,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &1988006378 Transform: m_ObjectHideFlags: 0 @@ -18057,7 +18046,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &2076014242 Transform: m_ObjectHideFlags: 0 @@ -18293,7 +18282,7 @@ m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 m_IsActive: 0 --- !u!4 &2127394827 Transform: m_ObjectHideFlags: 0 Assets/Scripts/GameAnalytics_SDK/TDAA_SDKManager.cs
@@ -386,7 +386,6 @@ private void OnDestroy() { Debug.Log("onDestroy"); TalkingDataPlugin.SessionStoped(); } } Assets/Scripts/GameAnalytics_SDK/UI/LoginUI.cs
@@ -82,6 +82,7 @@ { if (!isLogining) { AudioSourceManager.Ins.Play(AudioEnum.UI); TDAA_SDKManager.Ins.Statistics(2);//埋点 //StartCoroutine(loginMy()); Assets/Scripts/Manager/ManagerRoot.cs
@@ -16,12 +16,18 @@ gameObject.AddComponent<DoNotDestory>(); gameObject.AddComponent<MasterSocket>(); gameObject.AddComponent<TDAA_SDKManager>(); gameObject.AddComponent<AudioSourceManager>(); //gameObject.AddComponent<ErrorLogOnGUIMyTools>(); //gameObject.AddComponent<JsonDataReader>(); } void Start() { AudioSourceManager.Ins.Play(AudioEnum.BGM1); } // public void AfterRead() // { // JsonDataReader.Instance.StartRead(() => Assets/Scripts/Music.meta
New file @@ -0,0 +1,8 @@ fileFormatVersion: 2 guid: d330a3137fb70f24496338b85278f40e folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant: Assets/Scripts/Music/AudioSourceManager.cs
New file @@ -0,0 +1,272 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; public enum AudioEnum { BGM1, BGM2, UI,//UI按键 UIDisable,//UI不可点击_错误 BuffAppear,//翻书 ChooseBuff,//选择buff后 End,//游戏结束 BossDie,//BOSS死亡 AttackTower,//敌人攻击塔 DragTower,//拖动宝石时 PutTower,//放下宝石 FireTAttack,//火攻击 WaterTAttack,//水攻击 WoodTAttack,//木攻击 LightningSkill,//电技能 FireSkill//火技能 } public class AudioSourceManager : MonoBehaviour { private static AudioSourceManager _ins; public static AudioSourceManager Ins { get { return _ins; } } private void Awake() { _ins = this; clipDic = new Dictionary<string, AudioClip>(); audioSourceList = new List<AudioSource>(); for (int i = 0; i < 5; i++) { audioSourceList.Add(gameObject.AddComponent<AudioSource>()); } } private AudioSource audioSource; private List<AudioSource> audioSourceList = new List<AudioSource>(); /// <summary> /// 跳过第一个,第一个用来播放背景音 获取一个空的组件 /// </summary> /// <returns></returns> private AudioSource GetAudioSource() { for (int i = 1; i < audioSourceList.Count; i++) { if (!audioSourceList[i].isPlaying) { return audioSourceList[i]; } } AudioSource tmpAudioSource = gameObject.AddComponent<AudioSource>(); audioSourceList.Add(tmpAudioSource); return tmpAudioSource; } private AudioClip LoadAudioClip(string musicName) { if (clipDic.ContainsKey(musicName)) return clipDic[musicName]; else { AudioClip au = Resources.Load<AudioClip>("Music/" + musicName); clipDic.Add(musicName, au); return au; } } public void Play(AudioEnum en) { Debug.Log("播放了音效:"+en); switch (en) { case AudioEnum.BGM1: Play("BGM1", false); break; case AudioEnum.BGM2: Play("BGM2", false); break; case AudioEnum.UI: Play("UI按键", true); break; case AudioEnum.UIDisable: Play("不可点击_错误", true); break; case AudioEnum.BuffAppear: Play("翻书", true); break; case AudioEnum.ChooseBuff: StopOneShot("选择buff后", true); //Play("选择buff后", true); break; case AudioEnum.End: Play("游戏结束", true); break; case AudioEnum.BossDie: Play("BOSS死亡", true); break; case AudioEnum.AttackTower: Play("敌人攻击塔", true); break; case AudioEnum.DragTower: Play("拖动宝石时", true); break; case AudioEnum.PutTower: Play("放下宝石", true); break; case AudioEnum.FireTAttack: Play("火攻击", true); break; case AudioEnum.WaterTAttack: Play("水攻击", true); break; case AudioEnum.WoodTAttack: Play("木攻击", true); break; case AudioEnum.LightningSkill: Play("电技能", true); break; case AudioEnum.FireSkill: Play("火技能", true); break; } } Dictionary<string, AudioClip> clipDic; private void Play(string musicName, bool isOneShot) { AudioClip au = LoadAudioClip(musicName); AudioSource tmpAudioSource; //tmpAudioSource.volume = PlayerPrefs.GetFloat("BgmVal"); if (isOneShot) { tmpAudioSource = GetAudioSource(); tmpAudioSource.clip = au; tmpAudioSource.loop = false; //tmpAudioSource.PlayOneShot(au);//无法立刻暂停 StartCoroutine(RemoAudio(tmpAudioSource, au)); } else { tmpAudioSource = audioSourceList[0]; tmpAudioSource.clip = au; tmpAudioSource.loop = true; } tmpAudioSource.Play(); } /// <summary> /// 销毁音效 /// </summary> /// <param name="audioClip"></param> private IEnumerator RemoAudio(AudioSource tmpAudioSource, AudioClip au) { if (audioSourceList.Count > 5) { yield return new WaitForSeconds(au.length); audioSourceList.Remove(tmpAudioSource); Destroy(tmpAudioSource); } yield break; } /// <summary> /// 调整音效时更新音量 /// </summary> public void UpdateAudioVal() { foreach (AudioSource val in audioSourceList) { //便利所有的Bgm ,设置音量 if (val) { val.volume = PlayerPrefs.GetFloat("BgmVal"); } } } /// <summary> /// 删除指定音效 /// </summary> /// <param name="audioName">被删除的音乐</param> public void DeleteAudio(string audioName) { foreach (AudioSource val in audioSourceList) { if (val && val.clip.name == audioName) { audioSourceList.Remove(val); Destroy(val.gameObject); break; } } } /// <summary> /// 音乐暂停 /// </summary> /// <param name="isStop">是否暂停</param> public void StopAudio(bool isStop) { foreach (AudioSource val in audioSourceList) { if (isStop && val) { val.Pause(); } else if (val) { val.Play(); } } } /// <summary> /// 判断当前音乐是否存在 /// </summary> /// <param name="audioName">音乐名字</param> /// <returns></returns> private bool AudioIsTrue(string audioName) { foreach (AudioSource val in audioSourceList) { if (val && val.clip.name == audioName) { return true; } } return false; } /// <summary> /// 停止播放某一个音效 /// </summary> /// <param name="audioName"></param> private void StopOneShot(string musicName, bool isOneShot) { foreach (AudioSource val in audioSourceList) { if (val && val.clip && val.clip.name == musicName) { val.Stop(); val.clip = null; break; } } Play(musicName, isOneShot); } } Assets/Scripts/Music/AudioSourceManager.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 25127f6980e3a024d86d7beab218785e MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Assets/Scripts/TowerDefense/Affectors/AttackAffector.cs
@@ -12,43 +12,43 @@ namespace TowerDefense.Affectors { /// <summary> /// The common effect for handling firing projectiles to attack /// /// Requires an ILauncher but it is not automatically added /// Add an ILauncher implementation to this GameObject before you add this script /// </summary> [RequireComponent(typeof(ILauncher))] public class AttackAffector : Affector, ITowerRadiusProvider { /// <summary> /// The projectile used to attack /// </summary> public GameObject projectile; /// <summary> /// The common effect for handling firing projectiles to attack /// /// Requires an ILauncher but it is not automatically added /// Add an ILauncher implementation to this GameObject before you add this script /// </summary> [RequireComponent(typeof(ILauncher))] public class AttackAffector : Affector, ITowerRadiusProvider { /// <summary> /// The projectile used to attack /// </summary> public GameObject projectile; // protected GameObject projectile1; protected GameObject projectile2; // protected GameObject projectile1; protected GameObject projectile2; /// <summary> /// The list of points to launch the projectiles from /// </summary> public Transform[] projectilePoints; /// <summary> /// The list of points to launch the projectiles from /// </summary> public Transform[] projectilePoints; /// <summary> /// The reference to the center point where the tower will search from /// </summary> public Transform epicenter; /// <summary> /// The reference to the center point where the tower will search from /// </summary> public Transform epicenter; /// <summary> /// Configuration for when the tower does splash damage /// </summary> public bool isMultiAttack; /// <summary> /// Configuration for when the tower does splash damage /// </summary> public bool isMultiAttack; /// <summary> /// 如果是多目标攻击,最多攻击目标 /// </summary> public int maxAttackNum = 1; /// <summary> /// 如果是多目标攻击,最多攻击目标 /// </summary> public int maxAttackNum = 1; /// <summary> @@ -57,356 +57,381 @@ public float fireRate; /// <summary> /// 是否木属性数据 /// </summary> public bool bWoodAffector = false; /// <summary> /// 是否木属性数据 /// </summary> public bool bWoodAffector = false; /// <summary> /// The audio source to play when firing /// </summary> public RandomAudioSource randomAudioSource; /// <summary> /// The audio source to play when firing /// </summary> public RandomAudioSource randomAudioSource; /// <summary> /// Gets the targetter /// </summary> public Targetter towerTargetter; /// <summary> /// Gets the targetter /// </summary> public Targetter towerTargetter; /// <summary> /// Color of effect radius visualization /// </summary> public Color radiusEffectColor; /// <summary> /// Color of effect radius visualization /// </summary> public Color radiusEffectColor; /// <summary> /// Search condition /// </summary> public Filter searchCondition; /// <summary> /// Search condition /// </summary> public Filter searchCondition; /// <summary> /// Fire condition /// </summary> public Filter fireCondition; /// <summary> /// Fire condition /// </summary> public Filter fireCondition; /// <summary> /// The reference to the attached launcher /// </summary> protected ILauncher m_Launcher; /// <summary> /// The reference to the attached launcher /// </summary> protected ILauncher m_Launcher; /// <summary> /// The time before firing is possible /// </summary> protected float m_FireTimer; /// <summary> /// The time before firing is possible /// </summary> protected float m_FireTimer; /// <summary> /// Reference to the current tracked enemy /// </summary> protected Targetable m_TrackingEnemy; /// <summary> /// Reference to the current tracked enemy /// </summary> protected Targetable m_TrackingEnemy; /// <summary> /// 处理装弹时间. /// </summary> protected float fillBulletTime = 0.0f; /// <summary> /// 处理装弹时间. /// </summary> protected float fillBulletTime = 0.0f; /// <summary> /// 充能时间 /// </summary> protected float energyCalTime = 0; protected float fInEnergy = 0; protected float fBackupTimer = 0.0f; /// <summary> /// Gets the search rate from the targetter /// </summary> public float searchRate { get { return towerTargetter.searchRate; } set { towerTargetter.searchRate = value; } } /// <summary> /// Gets the targetable /// </summary> public Targetable trackingEnemy { get { return m_TrackingEnemy; } } /// <summary> /// Gets or sets the attack radius /// </summary> public float effectRadius { get { return towerTargetter.effectRadius; } } public Color effectColor { get { return radiusEffectColor; } } public Targetter targetter { get { return towerTargetter; } } /// <summary> /// Initializes the attack affector /// </summary> public override void Initialize(IAlignmentProvider affectorAlignment) { Initialize(affectorAlignment, -1); } /// <summary> /// 返回可能存在的Targetter. /// </summary> /// <returns></returns> public override TowerDefense.Targetting.Targetter GetTargetter() { return targetter; } /// <summary> /// Initialises the attack affector with a layer mask /// </summary> public override void Initialize(IAlignmentProvider affectorAlignment, LayerMask mask) { base.Initialize(affectorAlignment, mask); SetUpTimers(); towerTargetter.ResetTargetter(); towerTargetter.alignment = affectorAlignment; towerTargetter.acquiredTarget += OnAcquiredTarget; towerTargetter.lostTarget += OnLostTarget; } void OnDestroy() { towerTargetter.acquiredTarget -= OnAcquiredTarget; towerTargetter.lostTarget -= OnLostTarget; } void OnLostTarget() { m_TrackingEnemy = null; } void OnAcquiredTarget(Targetable acquiredTarget) { m_TrackingEnemy = acquiredTarget; } public Damager damagerProjectile { get { return projectile == null ? null : projectile.GetComponent<Damager>(); } } public Damager damagerProjectile1 { get { return projectile == null ? null : projectile.GetComponent<Damager>(); } } public Damager damagerProjectile2 { get { return projectile == null ? null : projectile.GetComponent<Damager>(); } } /// <summary> /// Returns the total projectile damage /// </summary> public float GetProjectileDamage() { var splash = projectile.GetComponent<SplashDamager>(); float splashDamage = splash != null ? splash.damage : 0; return damagerProjectile.finalDamage + splashDamage; } /// <summary> /// Initialise the RepeatingTimer /// </summary> protected virtual void SetUpTimers() { m_FireTimer = 1 / fireRate; m_Launcher = GetComponent<ILauncher>(); } protected void updateTowerSkillData() protected float fInEnergy = 0; protected float fBackupTimer = 0.0f; /// <summary> /// Gets the search rate from the targetter /// </summary> public float searchRate { // // 预留出来装填子弹的时间. if (fillBulletTime > 0) { fillBulletTime -= Time.deltaTime; if (fillBulletTime <= 0.3f) { if (towerPtr && towerPtr.bulletCtl) towerPtr.bulletCtl.resetToMaxBullet(); } get { return towerTargetter.searchRate; } set { towerTargetter.searchRate = value; } } if (fillBulletTime <= 0) { fillBulletTime = 0; } } /// <summary> /// Gets the targetable /// </summary> public Targetable trackingEnemy { get { return m_TrackingEnemy; } } // // 充能时间的处理 if( towerPtr && towerPtr.energyCtl) /// <summary> /// Gets or sets the attack radius /// </summary> public float effectRadius { get { return towerTargetter.effectRadius; } } public Color effectColor { get { return radiusEffectColor; } } public Targetter targetter { get { return towerTargetter; } } /// <summary> /// Initializes the attack affector /// </summary> public override void Initialize(IAlignmentProvider affectorAlignment) { Initialize(affectorAlignment, -1); } /// <summary> /// 返回可能存在的Targetter. /// </summary> /// <returns></returns> public override TowerDefense.Targetting.Targetter GetTargetter() { return targetter; } /// <summary> /// Initialises the attack affector with a layer mask /// </summary> public override void Initialize(IAlignmentProvider affectorAlignment, LayerMask mask) { base.Initialize(affectorAlignment, mask); SetUpTimers(); towerTargetter.ResetTargetter(); towerTargetter.alignment = affectorAlignment; towerTargetter.acquiredTarget += OnAcquiredTarget; towerTargetter.lostTarget += OnLostTarget; GetAudioEnum(); } private AudioEnum audioEnum;//当前音乐的种类 void GetAudioEnum() { if (transform.parent.name.StartsWith("GrowUpTower")) { if( this.fInEnergy <= 0) //火元素 audioEnum = AudioEnum.FireTAttack; } else if (transform.parent.name.StartsWith("BlinkTower")) { //木元素 audioEnum = AudioEnum.WoodTAttack; } else if (transform.parent.name.StartsWith("CopyCatTower")) { //水元素 audioEnum = AudioEnum.WaterTAttack; } } void OnDestroy() { towerTargetter.acquiredTarget -= OnAcquiredTarget; towerTargetter.lostTarget -= OnLostTarget; } void OnLostTarget() { m_TrackingEnemy = null; } void OnAcquiredTarget(Targetable acquiredTarget) { m_TrackingEnemy = acquiredTarget; } public Damager damagerProjectile { get { return projectile == null ? null : projectile.GetComponent<Damager>(); } } public Damager damagerProjectile1 { get { return projectile == null ? null : projectile.GetComponent<Damager>(); } } public Damager damagerProjectile2 { get { return projectile == null ? null : projectile.GetComponent<Damager>(); } } /// <summary> /// Returns the total projectile damage /// </summary> public float GetProjectileDamage() { var splash = projectile.GetComponent<SplashDamager>(); float splashDamage = splash != null ? splash.damage : 0; return damagerProjectile.finalDamage + splashDamage; } /// <summary> /// Initialise the RepeatingTimer /// </summary> protected virtual void SetUpTimers() { m_FireTimer = 1 / fireRate; m_Launcher = GetComponent<ILauncher>(); } protected void updateTowerSkillData() { // // 预留出来装填子弹的时间. if (fillBulletTime > 0) { fillBulletTime -= Time.deltaTime; if (fillBulletTime <= 0.3f) { this.energyCalTime += Time.deltaTime; float process = energyCalTime % 11.0f; int proint = (int)Math.Floor(process); proint += towerPtr.uiProOffset; towerPtr.energyCtl.SetEnergyProcessFloat( process ); if (proint == 10) { fInEnergy = 5.0f; if (towerPtr && towerPtr.bulletCtl) towerPtr.bulletCtl.resetToMaxBullet(); } // 设置多倍攻击速度 fBackupTimer = m_FireTimer; m_FireTimer = m_FireTimer / 3.0f; if (fillBulletTime <= 0) { fillBulletTime = 0; } } towerPtr.uiProOffset = 0; towerPtr.PlayEnergyEffect(true); } // // 充能时间的处理 if (towerPtr && towerPtr.energyCtl) { if (this.fInEnergy <= 0) { this.energyCalTime += Time.deltaTime; float process = energyCalTime % 11.0f; int proint = (int)Math.Floor(process); proint += towerPtr.uiProOffset; towerPtr.energyCtl.SetEnergyProcessFloat(process); if (proint == 10) { fInEnergy = 5.0f; // 设置多倍攻击速度 fBackupTimer = m_FireTimer; m_FireTimer = m_FireTimer / 3.0f; towerPtr.uiProOffset = 0; towerPtr.PlayEnergyEffect(true); } } else { fInEnergy -= Time.deltaTime; if( fInEnergy <= 0) fInEnergy -= Time.deltaTime; if (fInEnergy <= 0) { EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.FireTowerChargeEnd); fInEnergy = 0.0f; this.energyCalTime = 0.0f; towerPtr.energyCtl.SetEnergyProgress(0); fInEnergy = 0.0f; this.energyCalTime = 0.0f; towerPtr.energyCtl.SetEnergyProgress(0); // 恢复正常攻击速度 m_FireTimer = fBackupTimer; // 恢复正常攻击速度 m_FireTimer = fBackupTimer; towerPtr.PlayEnergyEffect(false); towerPtr.PlayEnergyEffect(false); } } } } } } } } /// <summary> /// Update the timers /// </summary> protected virtual void Update() { // 处理当前Affector所在Tower对应的技能 updateTowerSkillData(); /// <summary> /// Update the timers /// </summary> protected virtual void Update() { // 处理当前Affector所在Tower对应的技能 updateTowerSkillData(); m_FireTimer -= Time.deltaTime; if( trackingEnemy == null ) m_TrackingEnemy = targetter.GetTarget(waveLineID, bWoodAffector); if (trackingEnemy != null && m_FireTimer <= 0.0f) { OnFireTimer(); m_FireTimer = 1 / fireRate; // 多倍攻速: if (fInEnergy > 0.0f) m_FireTimer = m_FireTimer / 3.0f; } } /// <summary> /// Fired at every poll of the fire rate timer /// </summary> protected virtual void OnFireTimer() { if (fireCondition != null) { if (!fireCondition()) { return; } } FireProjectile(); } /// <summary> /// Common logic when attacking /// 调用攻击的核心函数,由这个函数发起真正的攻击,多目标或者单目标 /// </summary> protected virtual void FireProjectile() { // 不再处理多子弹攻击,确保只有一个弹道 isMultiAttack = false; m_TrackingEnemy = targetter.GetTarget( waveLineID, bWoodAffector ); if ( (m_TrackingEnemy == null) || (fillBulletTime>0) ) { if (this.towerPtr) towerPtr.setTowerState(false); return; }else m_FireTimer -= Time.deltaTime; if (trackingEnemy == null) m_TrackingEnemy = targetter.GetTarget(waveLineID, bWoodAffector); if (trackingEnemy != null && m_FireTimer <= 0.0f) { if (this.towerPtr) towerPtr.setTowerState(true); OnFireTimer(); m_FireTimer = 1 / fireRate; // 多倍攻速: if (fInEnergy > 0.0f) m_FireTimer = m_FireTimer / 3.0f; } } /// <summary> /// Fired at every poll of the fire rate timer /// </summary> protected virtual void OnFireTimer() { if (fireCondition != null) { if (!fireCondition()) { return; } } FireProjectile(); } /// <summary> /// Common logic when attacking /// 调用攻击的核心函数,由这个函数发起真正的攻击,多目标或者单目标 /// </summary> protected virtual void FireProjectile() { // 不再处理多子弹攻击,确保只有一个弹道 isMultiAttack = false; m_TrackingEnemy = targetter.GetTarget(waveLineID, bWoodAffector); if ((m_TrackingEnemy == null) || (fillBulletTime > 0)) { if (this.towerPtr) towerPtr.setTowerState(false); return; } else { if (this.towerPtr) towerPtr.setTowerState(true); } // // 处理子弹充能相关的内容 if( towerPtr && (towerPtr.bulletCtl != null)) // // 处理子弹充能相关的内容 if (towerPtr && (towerPtr.bulletCtl != null)) { int bnum = towerPtr.bulletCtl.decBullet(); // if (bnum == 0) { damagerProjectile.damageMulti = 5.0f; fillBulletTime = 2.0f; } int bnum = towerPtr.bulletCtl.decBullet(); // if (bnum == 0) { damagerProjectile.damageMulti = 5.0f; fillBulletTime = 2.0f; } } if (isMultiAttack) { List<Targetable> enemies = towerTargetter.GetAllTargets(); if( (enemies != null)&&(Targetter.bSearchTarget) ) m_Launcher.Launch(enemies, projectile, projectilePoints,this.maxAttackNum); } else { if(Targetter.bSearchTarget ) m_Launcher.Launch(m_TrackingEnemy, damagerProjectile.gameObject, projectilePoints); } if (randomAudioSource != null) { if( Targetter.bSearchTarget ) randomAudioSource.PlayRandomClip(); } } if (isMultiAttack) { List<Targetable> enemies = towerTargetter.GetAllTargets(); if ((enemies != null) && (Targetter.bSearchTarget)) m_Launcher.Launch(enemies, projectile, projectilePoints, this.maxAttackNum); } else { if (Targetter.bSearchTarget) { m_Launcher.Launch(m_TrackingEnemy, damagerProjectile.gameObject, projectilePoints); AudioSourceManager.Ins.Play(audioEnum); } } if (randomAudioSource != null) { if (Targetter.bSearchTarget) randomAudioSource.PlayRandomClip(); } } /// <summary> /// A delegate to compare distances of components /// </summary> /// <param name="first"></param> /// <param name="second"></param> protected virtual int ByDistance(Targetable first, Targetable second) { float firstSqrMagnitude = Vector3.SqrMagnitude(first.position - epicenter.position); float secondSqrMagnitude = Vector3.SqrMagnitude(second.position - epicenter.position); return firstSqrMagnitude.CompareTo(secondSqrMagnitude); } /// <summary> /// A delegate to compare distances of components /// </summary> /// <param name="first"></param> /// <param name="second"></param> protected virtual int ByDistance(Targetable first, Targetable second) { float firstSqrMagnitude = Vector3.SqrMagnitude(first.position - epicenter.position); float secondSqrMagnitude = Vector3.SqrMagnitude(second.position - epicenter.position); return firstSqrMagnitude.CompareTo(secondSqrMagnitude); } #if UNITY_EDITOR /// <summary> /// Draws the search area /// </summary> void OnDrawGizmosSelected() { Gizmos.DrawWireSphere(epicenter.position, towerTargetter.effectRadius); } /// <summary> /// Draws the search area /// </summary> void OnDrawGizmosSelected() { Gizmos.DrawWireSphere(epicenter.position, towerTargetter.effectRadius); } #endif } } /// <summary> /// A delegate for boolean calculation logic /// </summary> public delegate bool Filter(); /// <summary> /// A delegate for boolean calculation logic /// </summary> public delegate bool Filter(); } Assets/Scripts/TowerDefense/Input/EndlessTowerDefenseKeyboardMouseInput.cs
@@ -154,6 +154,9 @@ m_GameUI.TryMoveGhost(pointer, false); this.isInDragState = true; AudioSourceManager.Ins.Play(AudioEnum.DragTower); //Debug.Log("开始拖拽"); } protected override void OnDrag(PointerActionInfo pointer) @@ -168,9 +171,15 @@ { // EndDrag 只能放置相关的GhostTower. if (this.isInDragState) m_GameUI.onEndTowerDrag(pointer); { AudioSourceManager.Ins.Play(AudioEnum.PutTower); } m_GameUI.onEndTowerDrag(pointer); this.isInDragState = false; //Debug.Log("结束拖拽"); } /// <summary> Assets/Scripts/TowerDefense/Level/EndlessWaveLineManager.cs
@@ -60,6 +60,8 @@ ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); ps.transform.position = EndlessLevelManager.instance.WaveManager.GetWaveEndPos(id); ps.Play(); AudioSourceManager.Ins.Play(AudioEnum.FireSkill); Destroy(obj, ps.main.duration); } @@ -78,6 +80,8 @@ ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); ps.transform.position = pos; ps.Play(); AudioSourceManager.Ins.Play(AudioEnum.LightningSkill); Destroy(obj, ps.main.duration); } Assets/Scripts/TowerDefense/Towers/EndlessViewObtainedProps.cs
@@ -60,6 +60,8 @@ public void OnClick() { AudioSourceManager.Ins.Play(AudioEnum.UI); isShow = !isShow; if (isShow) Refresh(); Assets/Scripts/TowerDefense/UI/EndGameScreen.cs
@@ -246,10 +246,10 @@ protected void Victory() { OpenEndGameScreen(true); if ((victorySound != null) && (audioSource != null)) { audioSource.PlayOneShot(victorySound); } // if ((victorySound != null) && (audioSource != null)) // { // audioSource.PlayOneShot(victorySound); // } //background.color = winBackgroundColor; //first check if there are any more levels after this one @@ -294,10 +294,10 @@ // nextLevelButton.enabled = false; // nextLevelButton.gameObject.SetActive(false); //} if ((defeatSound != null) && (audioSource != null)) { audioSource.PlayOneShot(defeatSound); } // if ((defeatSound != null) && (audioSource != null)) // { // audioSource.PlayOneShot(defeatSound); // } //background.color = loseBackgroundColor; } Assets/Scripts/TowerDefense/UI/EndlessBossHPManager.cs
@@ -139,6 +139,10 @@ public void UpdateWave(int wave) { WaveNumText.text = $"x{wave}"; if (wave == 0) { AudioSourceManager.Ins.Play(AudioEnum.BossDie); } } /// <summary> Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs
@@ -50,6 +50,9 @@ { IconList[i].Reset(); } AudioSourceManager.Ins?.Play(AudioEnum.BuffAppear); } @@ -109,6 +112,8 @@ int index = SelectedIndex; AudioSourceManager.Ins.Play(AudioEnum.UI); HideBuffUI(); if (BuffSelectCompleted != null) Assets/Scripts/TowerDefense/UI/EndlessSettlement.cs
@@ -126,8 +126,8 @@ private void ShowPanel() { OpenEndGameScreen(true); if (VictoryAudio != null && AudioSource != null) AudioSource.PlayOneShot(VictoryAudio); // if (VictoryAudio != null && AudioSource != null) // AudioSource.PlayOneShot(VictoryAudio); } /// <summary> Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs
@@ -74,6 +74,8 @@ private void StartLater() { AudioSourceManager.Ins.Play(AudioEnum.End); StartCoroutine(ShowSlow()); } Assets/Scripts/TowerDefense/UI/EndlessSwitchSpeed.cs
@@ -29,6 +29,8 @@ public void OnClick() { AudioSourceManager.Ins.Play(AudioEnum.UI); SwitchSpeed(); } Assets/Scripts/TowerDefense/UI/EndlessUIStart.cs
@@ -85,6 +85,8 @@ GameConfig.EndlessOpenAttackTowerCount = 0; GameConfig.EndlessBuyTowerCount = 0; GameConfig.EndlessPortUseSkillTowerCount = 0; AudioSourceManager.Ins.Play(AudioEnum.BGM2); } private void InitSDK() @@ -93,6 +95,10 @@ gameObject.AddComponent<TDAA_SDKManager>(); TDAA_SDKManager.Ins.ArriveBattle();//埋点 TDAA_SDKManager.Ins.Statistics(4);//埋点 if (AudioSourceManager.Ins == null) gameObject.AddComponent<AudioSourceManager>(); } /// <summary> Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -1455,7 +1455,8 @@ /// </summary> protected void disableRandomTowerBtn() { randomTowerBtn.interactable = false; randomTowerBtn.GetComponent<EndlessRandomTower>().ChangeBtnClick(); //randomTowerBtn.interactable = false; if (towerPriceText) { towerPriceText.color = new Color(0.5f, 0.5f, 0.5f); @@ -1477,7 +1478,10 @@ towerPriceText.color = new Color(1.0f, 1.0f, 1.0f); if (randomTowerBtn) randomTowerBtn.interactable = true; { randomTowerBtn.GetComponent<EndlessRandomTower>().ChangeBtnClickNormal(); //randomTowerBtn.interactable = true; } tdBuyDisable = false; } Assets/Scripts/TowerDefense/UI/HUD/EndlessRandomTower.cs
@@ -88,7 +88,25 @@ bCdTimeStart = false; cdTimeBg.gameObject.SetActive(false); cdTimeText.text = ""; randomBtn.onClick.AddListener(onClick); } public void ChangeBtnClickNormal() { randomBtn.onClick.RemoveAllListeners(); randomBtn.onClick.AddListener(onClick); } public void ChangeBtnClick() { randomBtn.onClick.RemoveAllListeners(); randomBtn.onClick.AddListener(() => { AudioSourceManager.Ins.Play(AudioEnum.UIDisable); }); } /// <summary> @@ -280,7 +298,14 @@ /// </summary> public void onClick() { if (GameConfig.IsNewbie && !GameConfig.CanBuyNewTower) return; if (GameConfig.IsNewbie && !GameConfig.CanBuyNewTower) { AudioSourceManager.Ins.Play(AudioEnum.UIDisable); return; } AudioSourceManager.Ins.Play(AudioEnum.UI); // 还没到技能时间,忽略掉技能宝石 Tower newTower = GetRandomTower(EndlessUIStart.instance.GameStartTime <= SKILL_TOWER_TIME); @@ -295,7 +320,7 @@ /// 随机找一个空白位置放置塔防 /// </summary> /// <param name="tower"></param> public bool RandomPlaceTower(Tower tower, int level = -1, int cost = -1, int posx = - 1, int posy = -1) public bool RandomPlaceTower(Tower tower, int level = -1, int cost = -1, int posx = -1, int posy = -1) { EndlessGameUI gameUI = EndlessGameUI.instance; Assets/Scripts/TowerDefense/UI/HUD/SelectBuffIcon.cs
@@ -59,6 +59,8 @@ public void OnClick() { AudioSourceManager.Ins.Play(AudioEnum.ChooseBuff); if (OnSelectBuffCompleted != null) OnSelectBuffCompleted(Index); } Assets/Scripts/TowerDefense/UI/MainMenuScene.cs
@@ -70,6 +70,8 @@ /// </summary> public void cooperateBtnClick() { AudioSourceManager.Ins.Play(AudioEnum.UI); combatBtn.transform.DOKill(); combatBtn.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); this.SafelyUnsubscribe(); @@ -83,6 +85,8 @@ /// </summary> public void StartGame() { AudioSourceManager.Ins.Play(AudioEnum.UI); combatBtn.transform.DOKill(); combatBtn.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f);