```
feat(gameplay): 提升单位检测范围并添加法师属性 - 将所有单位的检测范围从默认值提升至100 - 为法师预制体添加护盾、等级等新属性 - 为法师添加暴击、吸血、伤害减免等战斗属性 - 更换法师弹丸预设并调整相关参数 - 添加锚点交战Z线控制功能 - 更新玩家数据中配备的召唤师技能 - 移除多余的纹理配置文件 ```
No files matched your search
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: D38evXusBn7tDyhcbC533Ys54UYkY/J9+vu8/VYhcPFJql43ObKyXKA=
|
||||
guid: CnMWsCL8BXrjSVGtcNbw8xmmAyJ4myeerBbK318tD4IM+61GtSbuRPg=
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
After Width: | Height: | Size: 3.2 MiB |
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: WSgeti74VXoLATcx6NBO5ICdi2XTlQlXVODxF5VYgTLjklgd2pP9Zxw=
|
||||
guid: Di8e4HukBS2icYBG54uAuGitv+UzF7pKTS6WqrgOmSHBImtz4DYMv1M=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
@@ -72,7 +72,7 @@ TextureImporter:
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 256
|
||||
maxTextureSize: 128
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
|
After Width: | Height: | Size: 4.3 MiB |
@@ -0,0 +1,163 @@
|
||||
fileFormatVersion: 2
|
||||
guid: W3wdsi77UynPkd6fQLvs7QQaHFA4e/7ElOTXGgGKqi7j+YCG5QXkxlA=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 14
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
webStreaming: 0
|
||||
priorityLevel: 0
|
||||
uploadedMode: 2
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 128
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WeixinMiniGame
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: PlayableAds
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
doOverrideTextureManagerOperations: 0
|
||||
platformOperationGroupSettings:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 3.1 MiB |
@@ -0,0 +1,163 @@
|
||||
fileFormatVersion: 2
|
||||
guid: CHwf43yoAn5KU1zKtaW6VyQgBbImvIab8DjJbYibthxz2hnP06+zAzI=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 14
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
webStreaming: 0
|
||||
priorityLevel: 0
|
||||
uploadedMode: 2
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 128
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WeixinMiniGame
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: PlayableAds
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
doOverrideTextureManagerOperations: 0
|
||||
platformOperationGroupSettings:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 3.1 MiB |
@@ -0,0 +1,163 @@
|
||||
fileFormatVersion: 2
|
||||
guid: Cn5OsiKrWyiyFOvStpfI3GvBab5vfVJjSFa+xsffC51QOzG+suMq9Ko=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 14
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
webStreaming: 0
|
||||
priorityLevel: 0
|
||||
uploadedMode: 2
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 128
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WeixinMiniGame
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: PlayableAds
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
doOverrideTextureManagerOperations: 0
|
||||
platformOperationGroupSettings:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 3.0 MiB |
@@ -0,0 +1,163 @@
|
||||
fileFormatVersion: 2
|
||||
guid: Wn0W43j5U3gqxMsBxJalPStmy56GNqDnD0Xgk4CmPXBP0Wg8e9tzqrA=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 14
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
webStreaming: 0
|
||||
priorityLevel: 0
|
||||
uploadedMode: 2
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 128
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WeixinMiniGame
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: PlayableAds
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
doOverrideTextureManagerOperations: 0
|
||||
platformOperationGroupSettings:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 4.2 MiB |
@@ -0,0 +1,163 @@
|
||||
fileFormatVersion: 2
|
||||
guid: DHkY4C+lASgPCd8shy3GA2+teWyMwoxxShX1F5H39DLbQH37pzmW6AA=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 14
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
webStreaming: 0
|
||||
priorityLevel: 0
|
||||
uploadedMode: 2
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 128
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WeixinMiniGame
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: PlayableAds
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
doOverrideTextureManagerOperations: 0
|
||||
platformOperationGroupSettings:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 2.9 MiB |
@@ -0,0 +1,163 @@
|
||||
fileFormatVersion: 2
|
||||
guid: Xi9OsC/5UHzJ6WAk+NAAv4O5DLlzTZZzt7sZcxK+4369Knc2vrsDlf8=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 14
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
webStreaming: 0
|
||||
priorityLevel: 0
|
||||
uploadedMode: 2
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 128
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WeixinMiniGame
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: PlayableAds
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
doOverrideTextureManagerOperations: 0
|
||||
platformOperationGroupSettings:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 3.5 MiB |
@@ -0,0 +1,163 @@
|
||||
fileFormatVersion: 2
|
||||
guid: CnsesiulAi8ckPl9BuGG7G0meBccKow+Zhx0TZref9jPFfGjjhKOI+w=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 14
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
webStreaming: 0
|
||||
priorityLevel: 0
|
||||
uploadedMode: 2
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 128
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WeixinMiniGame
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: PlayableAds
|
||||
maxTextureSize: 2048
|
||||
maxPlaceholderSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
doOverrideTextureManagerOperations: 0
|
||||
platformOperationGroupSettings:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: DHNO4S/4BX77kwvAo5poF6Otb/JUdQVh8fyVKVEbO5kcHcMRFAiAzYc=
|
||||
guid: Xn9KvCj/U30zVA7rpmegC+Zdpnf7cB3kwwRrT+39i/nQx4/hDrkyOZ8=
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
|
After Width: | Height: | Size: 3.6 MiB |
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: CygetCqvVyq7mi722ufLWubBwHodlZIRtrI9pqMzxZY/ammtsvTWw3k=
|
||||
guid: BnhK436sW36K8olUF0GMY8vlhMedW505FCq4QQhIsyqmLlFn/oAlaPA=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
@@ -42,7 +42,7 @@ TextureImporter:
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
|
After Width: | Height: | Size: 3.4 MiB |
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: CHwb5Cj5V3y3FyC49iHxIRZuakrsNBg0oCrA6zitSsCyn93/KMkAeWM=
|
||||
guid: CC5MtC38An+GczjVr28XvvHGfyXWU9eIqOaHFzLMttgBQfWI73e671Q=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
@@ -48,7 +48,7 @@ TextureImporter:
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 0
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
|
After Width: | Height: | Size: 3.4 MiB |
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: WigZ5nv4BSjuFi+9MI9tzw92/FaahSagCl+uLpayNkJRtTKjPyftG/M=
|
||||
guid: BykXtHmpAXqKF2bAwatT3lZWTnMJLWPIn9nhpPIQQDh4+1ukdZ6NsD4=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
@@ -42,7 +42,7 @@ TextureImporter:
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
|
After Width: | Height: | Size: 3.0 MiB |
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: XXpO4HuuVi529Z8w1kgNgompSP6cf/DYzHFJwBmqtKLMcic0PnQHIFM=
|
||||
guid: W3NM4XyqWnlXNlcMD27klsW38rnuQEM6xnT4qp6D2pLnEdiIXIRuit4=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
@@ -48,7 +48,7 @@ TextureImporter:
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 0
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
|
After Width: | Height: | Size: 1.6 MiB |
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: DClJ5niuWyj9XfsCQkPoXs8yO4LJSgFpbOhxnTW3xqzOLhGixWvL00w=
|
||||
guid: CnlNtnulUS/kUd8Bqhg4jwTkhRogFbOialiKpDYov+A3r/xn/vk1its=
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
@@ -42,7 +42,7 @@ TextureImporter:
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
@@ -0,0 +1,413 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!1 &2087920102135530396
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 7
|
||||
m_Component:
|
||||
- component: {fileID: 6839871261976653828}
|
||||
- component: {fileID: 4461983462414639379}
|
||||
- component: {fileID: 4063146373856518209}
|
||||
- component: {fileID: 2314884542527774420}
|
||||
m_Layer: 0
|
||||
m_HasEditorInfo: 1
|
||||
m_Name: Glow
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6839871261976653828
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2087920102135530396}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.55, y: 0.55, z: 0.55}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5259458123043870035}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &4461983462414639379
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2087920102135530396}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &4063146373856518209
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2087920102135530396}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_virtualGeometry: 0
|
||||
m_ShadingRate: 0
|
||||
m_ForceDisableGRD: 0
|
||||
m_ForceDisableSmallMeshCull: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 4dd2adfdb29294beab70e86d7c03a84f, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
m_MaskInteraction: 0
|
||||
--- !u!135 &2314884542527774420
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2087920102135530396}
|
||||
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_Radius: 0.5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &2357390776738801287
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 7
|
||||
m_Component:
|
||||
- component: {fileID: 5259458123043870035}
|
||||
- component: {fileID: 1598578444093914812}
|
||||
- component: {fileID: 5064643372387860081}
|
||||
- component: {fileID: 5068320599996604971}
|
||||
m_Layer: 0
|
||||
m_HasEditorInfo: 1
|
||||
m_Name: cureBall
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5259458123043870035
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2357390776738801287}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -0.94, y: 0.9, z: -5.75}
|
||||
m_LocalScale: {x: 5, y: 5, z: 5}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 5660450023389490467}
|
||||
- {fileID: 6839871261976653828}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!135 &1598578444093914812
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2357390776738801287}
|
||||
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_Radius: 0.5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!96 &5064643372387860081
|
||||
TrailRenderer:
|
||||
serializedVersion: 3
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2357390776738801287}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 0
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 0
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_virtualGeometry: 0
|
||||
m_ShadingRate: 0
|
||||
m_ForceDisableGRD: 0
|
||||
m_ForceDisableSmallMeshCull: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 1bab90e8c23324d50881f56829233aa2, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_Time: 0.3
|
||||
m_PreviewTimeScale: 1
|
||||
m_Parameters:
|
||||
serializedVersion: 3
|
||||
widthMultiplier: 1
|
||||
widthCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0.4
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0.05
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
colorGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 1, g: 0.5019608, b: 0, a: 1}
|
||||
key1: {r: 1, g: 0.2, b: 0, a: 0}
|
||||
key2: {r: 0, g: 0, b: 0, a: 0}
|
||||
key3: {r: 0, g: 0, b: 0, a: 0}
|
||||
key4: {r: 0, g: 0, b: 0, a: 0}
|
||||
key5: {r: 0, g: 0, b: 0, a: 0}
|
||||
key6: {r: 0, g: 0, b: 0, a: 0}
|
||||
key7: {r: 0, g: 0, b: 0, a: 0}
|
||||
ctime0: 0
|
||||
ctime1: 65535
|
||||
ctime2: 0
|
||||
ctime3: 0
|
||||
ctime4: 0
|
||||
ctime5: 0
|
||||
ctime6: 0
|
||||
ctime7: 0
|
||||
atime0: 0
|
||||
atime1: 65535
|
||||
atime2: 0
|
||||
atime3: 0
|
||||
atime4: 0
|
||||
atime5: 0
|
||||
atime6: 0
|
||||
atime7: 0
|
||||
m_Mode: 0
|
||||
m_ColorSpace: -1
|
||||
m_NumColorKeys: 2
|
||||
m_NumAlphaKeys: 2
|
||||
numCornerVertices: 4
|
||||
numCapVertices: 4
|
||||
alignment: 0
|
||||
textureMode: 0
|
||||
textureScale: {x: 1, y: 1}
|
||||
shadowBias: 0.5
|
||||
generateLightingData: 0
|
||||
m_MinVertexDistance: 0.05
|
||||
m_MaskInteraction: 0
|
||||
m_Autodestruct: 0
|
||||
m_Emitting: 1
|
||||
m_ApplyActiveColorSpace: 1
|
||||
--- !u!114 &5068320599996604971
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2357390776738801287}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8c91fecbd8f3443fab9c49d64a176a69, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
explosionPrefab: {fileID: 2197285705285267162, guid: ca4876f00bf994412803ebaa8d844d2d,
|
||||
type: 3}
|
||||
--- !u!1 &4931692434549069711
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 7
|
||||
m_Component:
|
||||
- component: {fileID: 5660450023389490467}
|
||||
- component: {fileID: 1398872237729025070}
|
||||
- component: {fileID: 6807227233755848067}
|
||||
- component: {fileID: 613117499371047388}
|
||||
m_Layer: 0
|
||||
m_HasEditorInfo: 1
|
||||
m_Name: Orb
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5660450023389490467
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4931692434549069711}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.3, y: 0.3, z: 0.3}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5259458123043870035}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &1398872237729025070
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4931692434549069711}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &6807227233755848067
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4931692434549069711}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_virtualGeometry: 0
|
||||
m_ShadingRate: 0
|
||||
m_ForceDisableGRD: 0
|
||||
m_ForceDisableSmallMeshCull: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: ab5dd060ade6f4f25a2ddac18bae10a8, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
m_MaskInteraction: 0
|
||||
--- !u!135 &613117499371047388
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4931692434549069711}
|
||||
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_Radius: 0.5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: D3gZ5iqsVS10cTFtr6bUdZoasNhkJ28F+VuoHiTV7i6Yss7A1GrKNFg=
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -402,7 +402,7 @@ MonoBehaviour:
|
||||
characterDataName: "\u4EBA\u7C7B\u58EB\u5175Data"
|
||||
level: 1
|
||||
speed: 5
|
||||
detectionRange: 15
|
||||
detectionRange: 100
|
||||
attackRange: 1
|
||||
modelFacingOffset: 0
|
||||
attackPower: 10
|
||||
|
||||
@@ -363,7 +363,7 @@ MonoBehaviour:
|
||||
characterDataName: "\u5F13\u7BAD\u624BData"
|
||||
level: 1
|
||||
speed: 5
|
||||
detectionRange: 20
|
||||
detectionRange: 100
|
||||
attackRange: 6
|
||||
modelFacingOffset: 90
|
||||
attackPower: 10
|
||||
|
||||
@@ -373,6 +373,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
maxHealth: 100
|
||||
currentHealth: 100
|
||||
currentShield: 0
|
||||
showEnergyBar: 1
|
||||
maxEnergy: 100
|
||||
_currentEnergy: 0
|
||||
@@ -387,6 +388,7 @@ MonoBehaviour:
|
||||
damageNumberRiseHeight: 1.2
|
||||
damageNumberSpawnHeight: 1.5
|
||||
damageNumberSize: 0.09
|
||||
unitLevel: 1
|
||||
--- !u!114 &6329692133330436401
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -418,13 +420,18 @@ MonoBehaviour:
|
||||
characterDataName: "\u6CD5\u5E08Data"
|
||||
level: 1
|
||||
speed: 5
|
||||
detectionRange: 20
|
||||
detectionRange: 100
|
||||
attackRange: 6
|
||||
modelFacingOffset: 0
|
||||
attackPower: 10
|
||||
critRate: 0
|
||||
critMultiplier: 1.5
|
||||
lifestealRate: 0
|
||||
damageReductionRate: 0
|
||||
skillChargeMultiplier: 1
|
||||
attackDuration: 0
|
||||
attackType: 2
|
||||
projectilePrefab: {fileID: 2357390776738801287, guid: 84d85a7acce5b4aed85a5f93abdc0e37,
|
||||
projectilePrefab: {fileID: 1692925882083106, guid: c9174bceca70442191a9ca1202b7d66a,
|
||||
type: 3}
|
||||
projectileSpawnPoint: {fileID: 1275836217181562570}
|
||||
projectileSpeed: 20
|
||||
@@ -435,6 +442,8 @@ MonoBehaviour:
|
||||
returnToAnchorWhenIdle: 0
|
||||
anchorArrivalDistance: 0.35
|
||||
useAnchorLeash: 0
|
||||
useEngagementZLine: 1
|
||||
engagementZThreshold: 10
|
||||
target: {fileID: 0}
|
||||
--- !u!114 &6342080793053654425
|
||||
MonoBehaviour:
|
||||
|
||||
@@ -360,7 +360,7 @@ MonoBehaviour:
|
||||
characterDataName: "\u76FE\u536BData"
|
||||
level: 1
|
||||
speed: 5
|
||||
detectionRange: 15
|
||||
detectionRange: 100
|
||||
attackRange: 2
|
||||
modelFacingOffset: 45
|
||||
attackPower: 10
|
||||
|
||||
@@ -346,7 +346,7 @@ MonoBehaviour:
|
||||
characterDataName: "\u7CBE\u9510\u58EB\u5175Data"
|
||||
level: 1
|
||||
speed: 5
|
||||
detectionRange: 15
|
||||
detectionRange: 100
|
||||
attackRange: 1.5
|
||||
modelFacingOffset: 0
|
||||
attackPower: 10
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d4c1ba65157c9401b8efe2032fe42e87, type: 3}
|
||||
m_Name: "\u84DD\u89D2\u86EE\u5352Data"
|
||||
m_EditorClassIdentifier:
|
||||
characterId: "\u84DD\u89D2\u86EE\u5352"
|
||||
characterName: "\u84DD\u89D2\u86EE\u5352"
|
||||
rarity: 0
|
||||
description: "\u7B2C\u4E8C\u7AE0\u86EE\u65CF\u6742\u5175\uFF0C\u79FB\u901F\u5FEB\u3001\u653B\u51FB\u6027\u5F3A"
|
||||
cardIcon: {fileID: 0}
|
||||
unitPrefab: {fileID: 6460833124399534165, guid: f4e3e6e46c31d477ab6148a34f477c1f,
|
||||
type: 3}
|
||||
baseMaxHealth: 220
|
||||
baseAttackPower: 28
|
||||
baseMoveSpeed: 2.4
|
||||
healthPerLevel: 0
|
||||
attackPerLevel: 0
|
||||
moveSpeedPerLevel: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: W34avXurUn0qYuL3N4RNShn44kPaEkRIis6+DpPWOT/Dl/J3H0K7j2A=
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -34,6 +34,10 @@
|
||||
"mage",
|
||||
"elite_soldier"
|
||||
],
|
||||
"equippedSummonerSkills": [
|
||||
"神圣赞歌",
|
||||
"陨石轰炸"
|
||||
],
|
||||
"savedFormation": {
|
||||
"characterIds": [
|
||||
"shield_guard",
|
||||
|
||||
@@ -9,6 +9,20 @@ public class WorldHealthBar : MonoBehaviour
|
||||
// 当前生命值,范围会自动限制在 0 到 maxHealth 之间。
|
||||
[Min(0f)] public float currentHealth = 100f;
|
||||
|
||||
[Header("护盾")]
|
||||
public float currentShield = 0f;
|
||||
|
||||
/// <summary>
|
||||
/// 为单位添加护盾
|
||||
/// </summary>
|
||||
public void AddShield(float amount)
|
||||
{
|
||||
if (amount <= 0f || isDead) return;
|
||||
currentShield += amount;
|
||||
UpdateFill();
|
||||
Debug.Log($"{gameObject.name} 获得护盾 +{amount:F1},当前护盾: {currentShield:F1}");
|
||||
}
|
||||
|
||||
// 技能能量上限,英雄默认使用100点;没有技能的小怪可关闭能量条。
|
||||
[Header("技能能量")]
|
||||
public bool showEnergyBar = true;
|
||||
@@ -88,8 +102,14 @@ public class WorldHealthBar : MonoBehaviour
|
||||
// 血条最终使用的世界宽度。
|
||||
private float worldWidth;
|
||||
|
||||
// 所有血条共用的圆角 Sprite。
|
||||
[Header("等级显示")]
|
||||
public int unitLevel = 1;
|
||||
|
||||
// 所有血条共用的圆角 Sprite 和圆形 Sprite。
|
||||
private static Sprite roundedSprite;
|
||||
private static Sprite circleSprite;
|
||||
private Text levelText;
|
||||
private Image levelBadgeBg;
|
||||
|
||||
// 防止死亡逻辑重复执行。
|
||||
private bool isDead;
|
||||
@@ -97,6 +117,15 @@ public class WorldHealthBar : MonoBehaviour
|
||||
// 公开死亡状态供外部查询(用于胜负判定)
|
||||
public bool IsDead => isDead;
|
||||
|
||||
public void SetLevel(int level)
|
||||
{
|
||||
unitLevel = Mathf.Max(1, level);
|
||||
if (levelText != null)
|
||||
{
|
||||
levelText.text = unitLevel.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化血量和血条 UI。
|
||||
private void Awake()
|
||||
{
|
||||
@@ -133,16 +162,16 @@ public class WorldHealthBar : MonoBehaviour
|
||||
canvas.worldCamera = camera;
|
||||
if (camera.gameObject.name == "Main Camera")
|
||||
{
|
||||
// 使用摄像机的上方向,保证血条在摄像机画面中保持水平。
|
||||
// 面向摄像机背面,保证 UI 左右方向不发生镜像反转
|
||||
barRect.rotation = Quaternion.LookRotation(
|
||||
camera.transform.position - barRect.position,
|
||||
barRect.position - camera.transform.position,
|
||||
camera.transform.up);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 找不到 Main Camera 时,保留原来的展示逻辑。
|
||||
barRect.rotation = Quaternion.LookRotation(
|
||||
camera.transform.position - barRect.position,
|
||||
barRect.position - camera.transform.position,
|
||||
Vector3.up);
|
||||
}
|
||||
}
|
||||
@@ -181,12 +210,27 @@ public class WorldHealthBar : MonoBehaviour
|
||||
public void TakeDamage(float amount, GameObject attacker = null)
|
||||
{
|
||||
bool wasDead = isDead;
|
||||
SetHealth(currentHealth - amount);
|
||||
if (showDamageNumbers && amount > 0f && !wasDead)
|
||||
float originalDamage = amount;
|
||||
|
||||
// 优先消耗护盾抵扣伤害
|
||||
if (currentShield > 0f && amount > 0f)
|
||||
{
|
||||
float absorbed = Mathf.Min(currentShield, amount);
|
||||
currentShield -= absorbed;
|
||||
amount -= absorbed;
|
||||
Debug.Log($"{gameObject.name} 护盾吸收了 {absorbed:F1} 伤害,剩余护盾: {currentShield:F1}");
|
||||
}
|
||||
|
||||
if (amount > 0f)
|
||||
{
|
||||
SetHealth(currentHealth - amount);
|
||||
}
|
||||
|
||||
if (showDamageNumbers && originalDamage > 0f && !wasDead)
|
||||
{
|
||||
// 判断受击者(自己)是否是友方(Friend tag)
|
||||
bool isVictimFriend = gameObject.CompareTag("Friend");
|
||||
SpawnDamageNumber(amount, false, isVictimFriend);
|
||||
SpawnDamageNumber(originalDamage, false, isVictimFriend);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -451,6 +495,7 @@ public class WorldHealthBar : MonoBehaviour
|
||||
if (!showEnergyBar)
|
||||
{
|
||||
energyFillImage = null;
|
||||
CreateLevelBadge(barObject.transform);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -476,6 +521,8 @@ public class WorldHealthBar : MonoBehaviour
|
||||
energyInner.fillMethod = Image.FillMethod.Horizontal;
|
||||
energyInner.fillOrigin = 0;
|
||||
energyFillImage = energyInner;
|
||||
|
||||
CreateLevelBadge(barObject.transform);
|
||||
}
|
||||
|
||||
private void ApplyScaleCompensation()
|
||||
@@ -539,6 +586,83 @@ public class WorldHealthBar : MonoBehaviour
|
||||
return new Color(1f, 0.72f, 0.08f, 1f);
|
||||
}
|
||||
|
||||
// 创建圆形 Sprite 用于等级徽章背景。
|
||||
private static Sprite CircleSprite()
|
||||
{
|
||||
if (circleSprite != null) return circleSprite;
|
||||
|
||||
Texture2D texture = new Texture2D(64, 64, TextureFormat.RGBA32, false);
|
||||
float radius = 30f;
|
||||
Vector2 center = new Vector2(31.5f, 31.5f);
|
||||
|
||||
for (int y = 0; y < 64; y++)
|
||||
{
|
||||
for (int x = 0; x < 64; x++)
|
||||
{
|
||||
float dist = Vector2.Distance(new Vector2(x, y), center);
|
||||
if (dist > radius)
|
||||
{
|
||||
texture.SetPixel(x, y, Color.clear);
|
||||
}
|
||||
else
|
||||
{
|
||||
float alpha = Mathf.Clamp01(radius + 0.5f - dist);
|
||||
texture.SetPixel(x, y, new Color(1f, 1f, 1f, alpha));
|
||||
}
|
||||
}
|
||||
}
|
||||
texture.Apply();
|
||||
circleSprite = Sprite.Create(texture, new Rect(0, 0, 64, 64), new Vector2(0.5f, 0.5f));
|
||||
return circleSprite;
|
||||
}
|
||||
|
||||
// 创建血条左侧的圆圈等级徽章
|
||||
private void CreateLevelBadge(Transform parent)
|
||||
{
|
||||
int badgeSize = 26; // 圆圈徽章直径
|
||||
GameObject badgeObj = new GameObject("LevelBadge", typeof(RectTransform));
|
||||
badgeObj.transform.SetParent(parent, false);
|
||||
|
||||
RectTransform badgeRect = badgeObj.GetComponent<RectTransform>();
|
||||
badgeRect.anchorMin = new Vector2(0f, 1f);
|
||||
badgeRect.anchorMax = new Vector2(0f, 1f);
|
||||
badgeRect.pivot = new Vector2(1f, 0.5f); // 右边缘切齐,紧贴血条左边缘
|
||||
badgeRect.sizeDelta = new Vector2(badgeSize, badgeSize);
|
||||
badgeRect.anchoredPosition = new Vector2(2f, -PixelHeight * 0.5f); // 总是对齐第一行血条中心
|
||||
|
||||
// 外层黑边圆圈
|
||||
Image outerCircle = CreateImage("OuterCircle", badgeRect, CircleSprite(), new Color(0.05f, 0.05f, 0.05f, 0.95f));
|
||||
SetFullRect(outerCircle.rectTransform);
|
||||
|
||||
// 内层深色底板
|
||||
Image innerCircle = CreateImage("InnerCircle", outerCircle.transform, CircleSprite(), new Color(0.12f, 0.18f, 0.15f, 1f));
|
||||
innerCircle.rectTransform.anchorMin = Vector2.zero;
|
||||
innerCircle.rectTransform.anchorMax = Vector2.one;
|
||||
innerCircle.rectTransform.offsetMin = new Vector2(2f, 2f);
|
||||
innerCircle.rectTransform.offsetMax = new Vector2(-2f, -2f);
|
||||
levelBadgeBg = innerCircle;
|
||||
|
||||
// 居中阿拉伯数字 Text
|
||||
GameObject textObj = new GameObject("LevelText", typeof(RectTransform), typeof(Text));
|
||||
textObj.transform.SetParent(innerCircle.transform, false);
|
||||
|
||||
RectTransform textRect = textObj.GetComponent<RectTransform>();
|
||||
SetFullRect(textRect);
|
||||
|
||||
levelText = textObj.GetComponent<Text>();
|
||||
levelText.text = unitLevel.ToString();
|
||||
levelText.font = GetBuiltinFont();
|
||||
levelText.fontSize = 18;
|
||||
levelText.fontStyle = FontStyle.Bold;
|
||||
levelText.alignment = TextAnchor.MiddleCenter;
|
||||
levelText.color = new Color(0.95f, 0.98f, 0.95f, 1f);
|
||||
|
||||
// 加上外发光/描边效果
|
||||
var shadow = textObj.AddComponent<Shadow>();
|
||||
shadow.effectColor = new Color(0f, 0f, 0f, 0.9f);
|
||||
shadow.effectDistance = new Vector2(1f, -1f);
|
||||
}
|
||||
|
||||
// 创建一个用于边框或填充的 UI Image。
|
||||
private static Image CreateImage(string name, Transform parent, Sprite sprite, Color color)
|
||||
{
|
||||
|
||||
@@ -181,7 +181,8 @@ public class BattleFormationSpawner : MonoBehaviour
|
||||
unitBase.InitializeFromPlayerData(
|
||||
characterData.GetMaxHealth(level),
|
||||
characterData.GetAttackPower(level),
|
||||
characterData.GetMoveSpeed(level));
|
||||
characterData.GetMoveSpeed(level),
|
||||
level);
|
||||
}
|
||||
|
||||
// 设置友方英雄可复活
|
||||
|
||||
@@ -18,6 +18,7 @@ public class DefenseGameFlowController : MonoBehaviour
|
||||
public DefenseWaveLevelController waveLevelController;
|
||||
public Button startBattleButton;
|
||||
public GameObject deploymentUI; // 布阵 UI(英雄卡片面板)
|
||||
public Text deployHintText; // 布阵提示文本
|
||||
|
||||
[Header("英雄配置")]
|
||||
public HeroRoster roster;
|
||||
@@ -77,6 +78,7 @@ public class DefenseGameFlowController : MonoBehaviour
|
||||
SetupDeployGrid();
|
||||
DeployHighlight.Ensure();
|
||||
InitializeCardDrag();
|
||||
EnsureDeployHintText();
|
||||
|
||||
Debug.Log("DefenseGameFlowController: 布阵阶段,把英雄卡拖到网格上。");
|
||||
}
|
||||
@@ -138,7 +140,7 @@ public class DefenseGameFlowController : MonoBehaviour
|
||||
}
|
||||
|
||||
AlignGridCells(deployGridRoot.transform);
|
||||
deployGridRoot.SetActive(true);
|
||||
deployGridRoot.SetActive(false); // 隐藏蓝框视觉,仅保留拖拽时的防守格位高亮
|
||||
}
|
||||
|
||||
/// <summary>把网格下的格位按 DeployGrid 的坐标摆好,保证视觉与吸附完全一致。</summary>
|
||||
@@ -227,6 +229,58 @@ public class DefenseGameFlowController : MonoBehaviour
|
||||
Debug.Log($"DefenseGameFlowController: 已按出战阵容开启 {cardDrags.Count} 张卡片的拖动。");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 确保布阵提示文本存在。如果 Inspector 未绑定,则在 TowerDefenseCanvas 下自动创建或寻找。
|
||||
/// </summary>
|
||||
private void EnsureDeployHintText()
|
||||
{
|
||||
if (deployHintText != null)
|
||||
{
|
||||
deployHintText.gameObject.SetActive(true);
|
||||
deployHintText.text = "拖拽下方卡牌部署英雄到格位";
|
||||
return;
|
||||
}
|
||||
|
||||
var canvasObj = GameObject.Find("TowerDefenseCanvas");
|
||||
if (canvasObj == null) return;
|
||||
|
||||
var existingHint = canvasObj.transform.Find("DeployHintText");
|
||||
if (existingHint != null)
|
||||
{
|
||||
deployHintText = existingHint.GetComponent<Text>();
|
||||
if (deployHintText != null)
|
||||
{
|
||||
deployHintText.gameObject.SetActive(true);
|
||||
deployHintText.text = "拖拽下方卡牌部署英雄到格位";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 自动创建 DeployHintText UI
|
||||
var hintObj = new GameObject("DeployHintText", typeof(RectTransform), typeof(CanvasRenderer), typeof(Text));
|
||||
hintObj.transform.SetParent(canvasObj.transform, false);
|
||||
|
||||
var rect = hintObj.GetComponent<RectTransform>();
|
||||
rect.anchorMin = new Vector2(0.5f, 1f);
|
||||
rect.anchorMax = new Vector2(0.5f, 1f);
|
||||
rect.pivot = new Vector2(0.5f, 1f);
|
||||
rect.anchoredPosition = new Vector2(0f, -310f); // 放在顶部标题与开始按钮下方
|
||||
rect.sizeDelta = new Vector2(600f, 60f);
|
||||
|
||||
deployHintText = hintObj.GetComponent<Text>();
|
||||
deployHintText.text = "拖拽下方卡牌部署英雄到格位";
|
||||
deployHintText.font = Resources.GetBuiltinResource<Font>("LegacyRuntime.ttf");
|
||||
deployHintText.fontSize = 28;
|
||||
deployHintText.fontStyle = FontStyle.Bold;
|
||||
deployHintText.alignment = TextAnchor.MiddleCenter;
|
||||
deployHintText.color = new Color(1f, 0.92f, 0.5f, 1f); // 亮暖黄色,突出提示
|
||||
|
||||
// 加上外发光/阴影组件增强可视度
|
||||
var shadow = hintObj.AddComponent<Shadow>();
|
||||
shadow.effectColor = new Color(0f, 0f, 0f, 0.8f);
|
||||
shadow.effectDistance = new Vector2(2f, -2f);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 读取玩家出战阵容(PlayerData.json 的 currentDeck),按槽位返回角色数据。
|
||||
/// PlayerData 不可用时回退到场景里配置的 HeroRoster。
|
||||
@@ -360,6 +414,7 @@ public class DefenseGameFlowController : MonoBehaviour
|
||||
|
||||
if (deploymentUI != null) deploymentUI.SetActive(false);
|
||||
if (startBattleButton != null) startBattleButton.gameObject.SetActive(false);
|
||||
if (deployHintText != null) deployHintText.gameObject.SetActive(false);
|
||||
if (deployGridRoot != null) deployGridRoot.SetActive(false);
|
||||
if (DeployHighlight.Instance != null) DeployHighlight.Instance.Hide();
|
||||
|
||||
@@ -432,7 +487,8 @@ public class DefenseGameFlowController : MonoBehaviour
|
||||
unitBase.InitializeFromPlayerData(
|
||||
characterData.GetMaxHealth(level),
|
||||
characterData.GetAttackPower(level),
|
||||
characterData.GetMoveSpeed(level));
|
||||
characterData.GetMoveSpeed(level),
|
||||
level);
|
||||
}
|
||||
|
||||
var healthBar = unit.GetComponent<WorldHealthBar>();
|
||||
@@ -536,12 +592,21 @@ public class DefenseGameFlowController : MonoBehaviour
|
||||
var unitBase = hero.GetComponent<UnitBase>();
|
||||
var navAgent = hero.GetComponent<UnityEngine.AI.NavMeshAgent>();
|
||||
|
||||
bool canWalk = UnityEngine.AI.NavMesh.SamplePosition(
|
||||
hero.transform.position, out _, 2f, UnityEngine.AI.NavMesh.AllAreas);
|
||||
// 如果处于攻击或技能状态,navAgent 可能会被临时禁用,需重新启用 NavMeshAgent
|
||||
if (unitBase != null)
|
||||
{
|
||||
unitBase.target = null; // 清空目标退出攻击/追踪状态
|
||||
}
|
||||
if (navAgent != null && !navAgent.enabled)
|
||||
{
|
||||
navAgent.enabled = true;
|
||||
}
|
||||
|
||||
if (navAgent != null && navAgent.enabled && canWalk)
|
||||
bool canWalk = navAgent != null && navAgent.enabled && navAgent.isOnNavMesh
|
||||
&& UnityEngine.AI.NavMesh.SamplePosition(hero.transform.position, out _, 2f, UnityEngine.AI.NavMesh.AllAreas);
|
||||
|
||||
if (canWalk)
|
||||
{
|
||||
if (unitBase != null) unitBase.target = null; // 放开目标,进入回位
|
||||
navAgent.isStopped = false;
|
||||
navAgent.ResetPath();
|
||||
continue;
|
||||
@@ -552,7 +617,11 @@ public class DefenseGameFlowController : MonoBehaviour
|
||||
{
|
||||
Debug.LogWarning($"DefenseGameFlowController: {hero.name} 寻路不可用,瞬移回格位");
|
||||
hero.transform.position = initialPos;
|
||||
if (navAgent != null) navAgent.nextPosition = initialPos;
|
||||
if (navAgent != null)
|
||||
{
|
||||
if (!navAgent.enabled) navAgent.enabled = true;
|
||||
navAgent.nextPosition = initialPos;
|
||||
}
|
||||
if (unitBase != null) unitBase.ResetAnchorPosition();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,10 +44,12 @@ public class DefenseWaveLevelController : MonoBehaviour
|
||||
public float spawnY = 0.16f;
|
||||
public float waveCompleteDelay = 3f;
|
||||
|
||||
[Header("UI 绑定")]
|
||||
public Text waveTextUI; // 绑定 TowerDefenseCanvas/TopBar/WaveText
|
||||
public Text killCountTextUI; // 绑定 TowerDefenseCanvas/TopBar/KillCountText
|
||||
|
||||
private LevelWaveFile level;
|
||||
private readonly List<GameObject> activeEnemies = new List<GameObject>();
|
||||
private Slider progressSlider;
|
||||
private Text progressText;
|
||||
private int currentWaveIndex = -1;
|
||||
private int totalEnemies;
|
||||
private int defeatedEnemies;
|
||||
@@ -55,7 +57,8 @@ public class DefenseWaveLevelController : MonoBehaviour
|
||||
private void Start()
|
||||
{
|
||||
if (!LoadLevel()) return;
|
||||
CreateProgressBar();
|
||||
EnsureUIReferences();
|
||||
UpdateProgress(0, level.waves.Length, "准备中");
|
||||
if (autoStart) StartCoroutine(RunLevel());
|
||||
}
|
||||
|
||||
@@ -105,6 +108,12 @@ public class DefenseWaveLevelController : MonoBehaviour
|
||||
// 每波结束后,让英雄回到初始位置
|
||||
ResetHeroPositionsAfterWave();
|
||||
|
||||
// 每 2 波结束(第 2、4、6、8...波)触发 3 选 1 战术增益弹窗
|
||||
if ((currentWaveIndex + 1) % 2 == 0)
|
||||
{
|
||||
BuffSelectionController.Instance.ShowBuffSelection();
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(Mathf.Max(0f, waveCompleteDelay));
|
||||
}
|
||||
|
||||
@@ -177,6 +186,16 @@ public class DefenseWaveLevelController : MonoBehaviour
|
||||
{
|
||||
activeEnemies.RemoveAt(i);
|
||||
defeatedEnemies++;
|
||||
|
||||
// 击杀金币奖励 (基础 15 金币 * 战术增益倍率)
|
||||
if (GoldManager.Instance != null)
|
||||
{
|
||||
float killMult = BuffSelectionController.KillGoldMultiplier;
|
||||
int goldAmount = Mathf.RoundToInt(15f * killMult);
|
||||
GoldManager.Instance.AddGold(goldAmount);
|
||||
}
|
||||
|
||||
UpdateProgress(currentWaveIndex + 1, level.waves.Length);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,7 +226,9 @@ public class DefenseWaveLevelController : MonoBehaviour
|
||||
}
|
||||
if (unit == null) return;
|
||||
|
||||
unit.InitializeFromPlayerData(data.GetMaxHealth(1), data.GetAttackPower(1), data.GetMoveSpeed(1));
|
||||
// 小怪等级根据波次索引动态计算(前几波 Lv.1,随着波次推进适度成长,如 1~3 波 Lv.1,4~6 波 Lv.2,7~10 波 Lv.3)
|
||||
int enemyLevel = Mathf.Clamp((currentWaveIndex / 3) + 1, 1, 10);
|
||||
unit.InitializeFromPlayerData(data.GetMaxHealth(enemyLevel), data.GetAttackPower(enemyLevel), data.GetMoveSpeed(enemyLevel), enemyLevel);
|
||||
}
|
||||
|
||||
private int TotalCount(WaveEntry wave)
|
||||
@@ -228,60 +249,42 @@ public class DefenseWaveLevelController : MonoBehaviour
|
||||
return entry.prefab;
|
||||
}
|
||||
|
||||
private void CreateProgressBar()
|
||||
private void EnsureUIReferences()
|
||||
{
|
||||
var canvasObject = new GameObject("WaveProgressHUD", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster));
|
||||
var canvas = canvasObject.GetComponent<Canvas>();
|
||||
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
||||
canvas.sortingOrder = 500;
|
||||
if (waveTextUI != null && killCountTextUI != null) return;
|
||||
|
||||
var root = canvasObject.GetComponent<RectTransform>();
|
||||
var panel = new GameObject("WaveProgressPanel", typeof(RectTransform), typeof(Image));
|
||||
panel.transform.SetParent(root, false);
|
||||
var panelRect = panel.GetComponent<RectTransform>();
|
||||
panelRect.anchorMin = new Vector2(0.5f, 1f);
|
||||
panelRect.anchorMax = new Vector2(0.5f, 1f);
|
||||
panelRect.pivot = new Vector2(0.5f, 1f);
|
||||
panelRect.anchoredPosition = new Vector2(0f, -20f);
|
||||
panelRect.sizeDelta = new Vector2(420f, 64f);
|
||||
panel.GetComponent<Image>().color = new Color(0f, 0f, 0f, 0.45f);
|
||||
var canvasObject = GameObject.Find("TowerDefenseCanvas");
|
||||
if (canvasObject == null) return;
|
||||
|
||||
var sliderObject = new GameObject("WaveProgress", typeof(RectTransform), typeof(Slider));
|
||||
sliderObject.transform.SetParent(panel.transform, false);
|
||||
var sliderRect = sliderObject.GetComponent<RectTransform>();
|
||||
sliderRect.anchorMin = new Vector2(0.5f, 0f);
|
||||
sliderRect.anchorMax = new Vector2(0.5f, 0f);
|
||||
sliderRect.pivot = new Vector2(0.5f, 0f);
|
||||
sliderRect.anchoredPosition = new Vector2(0f, 10f);
|
||||
sliderRect.sizeDelta = new Vector2(360f, 16f);
|
||||
progressSlider = sliderObject.GetComponent<Slider>();
|
||||
progressSlider.minValue = 0f;
|
||||
progressSlider.maxValue = 1f;
|
||||
progressSlider.value = 0f;
|
||||
progressSlider.interactable = false;
|
||||
var topBar = canvasObject.transform.Find("TopBar");
|
||||
if (topBar == null) return;
|
||||
|
||||
var textObject = new GameObject("WaveProgressText", typeof(RectTransform), typeof(Text));
|
||||
textObject.transform.SetParent(panel.transform, false);
|
||||
var textRect = textObject.GetComponent<RectTransform>();
|
||||
textRect.anchorMin = new Vector2(0.5f, 1f);
|
||||
textRect.anchorMax = new Vector2(0.5f, 1f);
|
||||
textRect.pivot = new Vector2(0.5f, 1f);
|
||||
textRect.anchoredPosition = new Vector2(0f, -8f);
|
||||
textRect.sizeDelta = new Vector2(390f, 28f);
|
||||
progressText = textObject.GetComponent<Text>();
|
||||
progressText.alignment = TextAnchor.MiddleCenter;
|
||||
progressText.font = Resources.GetBuiltinResource<Font>("LegacyRuntime.ttf");
|
||||
progressText.fontSize = 18;
|
||||
progressText.color = Color.white;
|
||||
if (waveTextUI == null)
|
||||
{
|
||||
var waveObj = topBar.Find("WaveText");
|
||||
if (waveObj != null) waveTextUI = waveObj.GetComponent<Text>();
|
||||
}
|
||||
|
||||
if (killCountTextUI == null)
|
||||
{
|
||||
var killObj = topBar.Find("KillCountText");
|
||||
if (killObj != null) killCountTextUI = killObj.GetComponent<Text>();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateProgress(int waveNumber, int waveCount, string text)
|
||||
private void UpdateProgress(int waveNumber, int waveCount, string statusHint = "")
|
||||
{
|
||||
if (progressSlider != null)
|
||||
EnsureUIReferences();
|
||||
|
||||
int currentDisplayWave = Mathf.Clamp(waveNumber > 0 ? waveNumber : 1, 1, waveCount);
|
||||
if (waveTextUI != null)
|
||||
{
|
||||
float defeatedRatio = totalEnemies > 0 ? (float)defeatedEnemies / totalEnemies : 0f;
|
||||
progressSlider.value = Mathf.Clamp01((waveNumber - 1 + defeatedRatio) / Mathf.Max(1, waveCount));
|
||||
waveTextUI.text = $"波次 {currentDisplayWave}/{waveCount}";
|
||||
}
|
||||
|
||||
if (killCountTextUI != null)
|
||||
{
|
||||
killCountTextUI.text = $"击杀 {defeatedEnemies}/{totalEnemies}";
|
||||
}
|
||||
if (progressText != null) progressText.text = text;
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,12 @@ using UnityEngine.UI;
|
||||
/// </summary>
|
||||
public class PlayerSkillSystem : MonoBehaviour
|
||||
{
|
||||
public static PlayerSkillSystem Instance { get; private set; }
|
||||
|
||||
[Header("战术增益加成倍率")]
|
||||
public float cooldownMultiplier = 1f; // 冷却缩减倍率 (如 0.9 = CD 缩减 10%)
|
||||
public float powerMultiplier = 1f; // 威力加成倍率 (如 1.15 = 效果提升 15%)
|
||||
|
||||
[Header("技能1:群体治疗")]
|
||||
public Button skill1Button;
|
||||
public Text skill1CooldownText;
|
||||
@@ -14,6 +20,12 @@ public class PlayerSkillSystem : MonoBehaviour
|
||||
public float skill1HealAmount = 100f;
|
||||
private float skill1RemainingCooldown = 0f;
|
||||
|
||||
[Header("技能1特效配置")]
|
||||
public GameObject cureBallPrefab; // 飞球预制体 (Assets/Prefabs/特效/飞球/cureBall.prefab)
|
||||
public GameObject healNovaPrefab; // 治疗冲击波预制体 (Assets/TJGeneratorLibEffects/Prefabs/Interactive/Healing/HealNova.prefab)
|
||||
public Transform castStartTransform; // 技能施放起点 (如未指定默认摄像机下方或召唤师位置)
|
||||
public Vector3 castTargetPosition = new Vector3(0f, 0.1f, -9f); // 我方阵地中心落地点
|
||||
|
||||
[Header("技能2:全屏AOE")]
|
||||
public Button skill2Button;
|
||||
public Text skill2CooldownText;
|
||||
@@ -21,8 +33,19 @@ public class PlayerSkillSystem : MonoBehaviour
|
||||
public float skill2Damage = 80f;
|
||||
private float skill2RemainingCooldown = 0f;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Instance = this;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
// 自动从场景或父节点绑定技能按钮与图标引用
|
||||
EnsureSkillUIReferences();
|
||||
|
||||
// 从 PlayerData 加载玩家装备的 2 个召唤师技能图标
|
||||
LoadEquippedSkillIcons();
|
||||
|
||||
// 绑定按钮点击事件
|
||||
if (skill1Button != null)
|
||||
{
|
||||
@@ -35,6 +58,76 @@ public class PlayerSkillSystem : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
private void EnsureSkillUIReferences()
|
||||
{
|
||||
var canvas = GameObject.Find("TowerDefenseCanvas");
|
||||
if (canvas == null) return;
|
||||
|
||||
var skillsPanel = canvas.transform.Find("BottomUI/SkillsPanel");
|
||||
if (skillsPanel == null) return;
|
||||
|
||||
if (skill1Button == null && skillsPanel.childCount > 0)
|
||||
{
|
||||
var item1 = skillsPanel.GetChild(0);
|
||||
skill1Button = item1.GetComponent<Button>();
|
||||
if (skill1Button == null) skill1Button = item1.gameObject.AddComponent<Button>();
|
||||
}
|
||||
|
||||
if (skill2Button == null && skillsPanel.childCount > 1)
|
||||
{
|
||||
var item2 = skillsPanel.GetChild(1);
|
||||
skill2Button = item2.GetComponent<Button>();
|
||||
if (skill2Button == null) skill2Button = item2.gameObject.AddComponent<Button>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从 PlayerData 读取玩家配置的 2 个召唤师技能名称,并绑定图标到 UI 位置
|
||||
/// </summary>
|
||||
public void LoadEquippedSkillIcons()
|
||||
{
|
||||
string skill1Name = "神圣赞歌";
|
||||
string skill2Name = "陨石轰炸";
|
||||
|
||||
if (PlayerDataManager.Instance != null && PlayerDataManager.Instance.equippedSummonerSkills != null && PlayerDataManager.Instance.equippedSummonerSkills.Length >= 2)
|
||||
{
|
||||
skill1Name = PlayerDataManager.Instance.equippedSummonerSkills[0];
|
||||
skill2Name = PlayerDataManager.Instance.equippedSummonerSkills[1];
|
||||
}
|
||||
|
||||
SetSkillIcon(skill1Button, skill1Name);
|
||||
SetSkillIcon(skill2Button, skill2Name);
|
||||
}
|
||||
|
||||
private void SetSkillIcon(Button skillBtn, string skillName)
|
||||
{
|
||||
if (skillBtn == null || string.IsNullOrEmpty(skillName)) return;
|
||||
|
||||
Image img = skillBtn.GetComponent<Image>();
|
||||
if (img != null)
|
||||
{
|
||||
Sprite icon = GetSkillIconSprite(skillName);
|
||||
if (icon != null)
|
||||
{
|
||||
img.sprite = icon;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static Sprite GetSkillIconSprite(string skillName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(skillName)) return null;
|
||||
|
||||
Sprite icon = Resources.Load<Sprite>($"Picture/UI/召唤师技能图标/{skillName}");
|
||||
#if UNITY_EDITOR
|
||||
if (icon == null)
|
||||
{
|
||||
icon = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>($"Assets/Picture/UI/召唤师技能图标/{skillName}.png");
|
||||
}
|
||||
#endif
|
||||
return icon;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
// 更新技能1冷却
|
||||
@@ -100,15 +193,87 @@ public class PlayerSkillSystem : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log($"释放技能1:群体治疗(恢复 {skill1HealAmount} 生命)");
|
||||
float finalHeal = skill1HealAmount * powerMultiplier;
|
||||
Debug.Log($"释放技能1:群体治疗(恢复 {finalHeal:F1} 生命,威力倍率: {powerMultiplier:F2})");
|
||||
|
||||
// 对所有友方单位施加治疗
|
||||
BuffSystem.Instance.ApplyGroupHeal(skill1HealAmount);
|
||||
// 智能获取友方阵地中心或平均位置
|
||||
Vector3 targetPos = GetAllyCenterPosition();
|
||||
Vector3 startPos = castStartTransform != null ? castStartTransform.position : new Vector3(targetPos.x, targetPos.y + 10f, targetPos.z - 8f);
|
||||
|
||||
// 加载/实例化抛物线 cureBall
|
||||
GameObject ballPrefab = cureBallPrefab;
|
||||
if (ballPrefab == null)
|
||||
{
|
||||
ballPrefab = Resources.Load<GameObject>("Prefabs/特效/飞球/cureBall");
|
||||
}
|
||||
#if UNITY_EDITOR
|
||||
if (ballPrefab == null)
|
||||
{
|
||||
ballPrefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Prefabs/特效/飞球/cureBall.prefab");
|
||||
}
|
||||
#endif
|
||||
|
||||
GameObject novaPrefab = healNovaPrefab;
|
||||
#if UNITY_EDITOR
|
||||
if (novaPrefab == null)
|
||||
{
|
||||
novaPrefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>("Assets/TJGeneratorLibEffects/Prefabs/Interactive/Healing/HealNova.prefab");
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ballPrefab != null)
|
||||
{
|
||||
GameObject ballGo = Instantiate(ballPrefab, startPos, Quaternion.identity);
|
||||
var parabola = ballGo.GetComponent<ParabolaFlyObject>();
|
||||
if (parabola == null)
|
||||
{
|
||||
parabola = ballGo.AddComponent<ParabolaFlyObject>();
|
||||
}
|
||||
|
||||
parabola.Launch(startPos, targetPos, 0.8f, 4.5f, novaPrefab, () =>
|
||||
{
|
||||
// 对所有友方单位施加治疗
|
||||
BuffSystem.Instance.ApplyGroupHeal(finalHeal);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
// 特效缺失兜底直接治疗
|
||||
BuffSystem.Instance.ApplyGroupHeal(finalHeal);
|
||||
}
|
||||
|
||||
// 开始冷却
|
||||
skill1RemainingCooldown = skill1Cooldown;
|
||||
skill1RemainingCooldown = skill1Cooldown * cooldownMultiplier;
|
||||
}
|
||||
|
||||
// TODO: 播放技能特效
|
||||
/// <summary>
|
||||
/// 计算场上己方英雄的实时中心点位置,无单位时回退默认网格中心
|
||||
/// </summary>
|
||||
private Vector3 GetAllyCenterPosition()
|
||||
{
|
||||
var heroes = FindObjectsOfType<UnitBase>();
|
||||
Vector3 sumPos = Vector3.zero;
|
||||
int count = 0;
|
||||
|
||||
foreach (var hero in heroes)
|
||||
{
|
||||
if (hero == null || !hero.gameObject.activeInHierarchy) continue;
|
||||
UnitTeam team = hero.GetComponent<UnitTeam>();
|
||||
if (team != null && team.IsLocalPlayerTeam())
|
||||
{
|
||||
sumPos += hero.transform.position;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (count > 0)
|
||||
{
|
||||
Vector3 center = sumPos / count;
|
||||
center.y = 0.1f;
|
||||
return center;
|
||||
}
|
||||
|
||||
return new Vector3(0f, 0.1f, -10f); // 网格阵地真正中心点
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -121,7 +286,8 @@ public class PlayerSkillSystem : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
|
||||
Debug.Log($"释放技能2:全屏AOE(造成 {skill2Damage} 伤害)");
|
||||
float finalDamage = skill2Damage * powerMultiplier;
|
||||
Debug.Log($"释放技能2:全屏AOE(造成 {finalDamage:F1} 伤害,威力倍率: {powerMultiplier:F2})");
|
||||
|
||||
// 对所有敌方单位造成伤害
|
||||
var enemies = FindObjectsOfType<UnitBase>();
|
||||
@@ -135,7 +301,7 @@ public class PlayerSkillSystem : MonoBehaviour
|
||||
var healthBar = unit.GetComponent<WorldHealthBar>();
|
||||
if (healthBar != null && !healthBar.IsDead)
|
||||
{
|
||||
healthBar.TakeDamage(skill2Damage);
|
||||
healthBar.TakeDamage(finalDamage);
|
||||
hitCount++;
|
||||
}
|
||||
}
|
||||
@@ -144,7 +310,7 @@ public class PlayerSkillSystem : MonoBehaviour
|
||||
Debug.Log($"全屏AOE命中 {hitCount} 个敌人");
|
||||
|
||||
// 开始冷却
|
||||
skill2RemainingCooldown = skill2Cooldown;
|
||||
skill2RemainingCooldown = skill2Cooldown * cooldownMultiplier;
|
||||
|
||||
// TODO: 播放技能特效
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 抛物线飞行投射物(支持终点落地下落特效)
|
||||
/// </summary>
|
||||
public class ParabolaFlyObject : MonoBehaviour
|
||||
{
|
||||
private Vector3 startPoint;
|
||||
private Vector3 endPoint;
|
||||
private float flyDuration;
|
||||
private float heightPeak;
|
||||
private Action onImpactCallback;
|
||||
private GameObject impactEffectPrefab;
|
||||
|
||||
/// <summary>
|
||||
/// 初始化抛物线飞行
|
||||
/// </summary>
|
||||
public void Launch(Vector3 start, Vector3 end, float duration, float height, GameObject impactPrefab = null, Action onImpact = null)
|
||||
{
|
||||
startPoint = start;
|
||||
endPoint = end;
|
||||
flyDuration = duration > 0.05f ? duration : 0.8f;
|
||||
heightPeak = height;
|
||||
impactEffectPrefab = impactPrefab;
|
||||
onImpactCallback = onImpact;
|
||||
|
||||
transform.position = start;
|
||||
StartCoroutine(FlyRoutine());
|
||||
}
|
||||
|
||||
private IEnumerator FlyRoutine()
|
||||
{
|
||||
float elapsedTime = 0f;
|
||||
|
||||
while (elapsedTime < flyDuration)
|
||||
{
|
||||
elapsedTime += Time.deltaTime;
|
||||
float t = Mathf.Clamp01(elapsedTime / flyDuration);
|
||||
|
||||
// 水平线性插值
|
||||
Vector3 currentPos = Vector3.Lerp(startPoint, endPoint, t);
|
||||
// 抛物线弧度 y 轴偏移:4 * h * t * (1 - t)
|
||||
currentPos.y += 4f * heightPeak * t * (1f - t);
|
||||
|
||||
transform.position = currentPos;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
transform.position = endPoint;
|
||||
|
||||
// 落地时生成冲击波特效 (明确带入 impactEffectPrefab.transform.rotation,保留 -90° 旋转使网格平铺地面)
|
||||
if (impactEffectPrefab != null)
|
||||
{
|
||||
Quaternion rot = impactEffectPrefab.transform.rotation;
|
||||
var effectGo = Instantiate(impactEffectPrefab, endPoint, rot);
|
||||
effectGo.transform.rotation = rot; // 显式给实例化后的对象二次确认 rotation
|
||||
Destroy(effectGo, 3.5f); // 3.5 秒后清理粒子
|
||||
}
|
||||
|
||||
onImpactCallback?.Invoke();
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: D3JO5CmpW3JLOQZhkEdJx717FVLdRzBY3wTDe5K1ukWeTb93Oc8yYpI=
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -147,6 +147,15 @@ public class Projectile : MonoBehaviour
|
||||
if (unit != null)
|
||||
{
|
||||
unit.RegisterAttackHit();
|
||||
// 远程投射物通用吸血
|
||||
if (unit.lifestealRate > 0f)
|
||||
{
|
||||
WorldHealthBar ownerBar = unit.GetComponent<WorldHealthBar>();
|
||||
if (ownerBar != null)
|
||||
{
|
||||
ownerBar.Heal(damage * unit.lifestealRate);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,604 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class BuffSelectionController : MonoBehaviour
|
||||
{
|
||||
private static BuffSelectionController _instance;
|
||||
public static BuffSelectionController Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
_instance = FindObjectOfType<BuffSelectionController>();
|
||||
if (_instance == null)
|
||||
{
|
||||
var canvas = GameObject.Find("TowerDefenseCanvas");
|
||||
var targetObj = canvas != null ? canvas : new GameObject("BuffSelectionControllerManager");
|
||||
_instance = targetObj.AddComponent<BuffSelectionController>();
|
||||
}
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
public static float KillGoldMultiplier = 1.0f; // 全局击杀金币收益倍率
|
||||
|
||||
public enum BuffType
|
||||
{
|
||||
AttackPower, // 1. 攻击力 (+6% / +12% / +20%)
|
||||
MaxHealth, // 2. 最大生命值 (+10% / +18% / +30%)
|
||||
AttackSpeed, // 3. 攻击速度 (+5% / +10% / +16%)
|
||||
CritRate, // 4. 暴击率 (+6% / +12% / +20%)
|
||||
Lifesteal, // 5. 通用吸血 (+4% / +8% / +14%)
|
||||
SkillCharge, // 6. 技能充能 (+8% / +15% / +25%)
|
||||
SummonerCD, // 7. 召唤师技能CD (-5% / -10% / -18%)
|
||||
SummonerPower, // 8. 召唤师技能威力 (+8% / +15% / +25%)
|
||||
AttackRange, // 9. 攻击射程 (+0.5米 / +1.0米 / +1.8米)
|
||||
DamageReduction, // 10. 伤害减免 (+5% / +10% / +16%)
|
||||
Shield, // 11. 护盾生成 (15% / 25% / 40% MaxHP)
|
||||
KillGold, // 12. 击杀金币 (+15% / +30% / +50%)
|
||||
GoldBonus, // 特殊 1: 招财进宝 (+30 / +60 / +100 金币)
|
||||
EmergencyHeal // 特殊 2: 紧急救急 (恢复 25% / 40% / 60% HP)
|
||||
}
|
||||
|
||||
public enum BuffQuality
|
||||
{
|
||||
Common, // 初级 (白色 55%)
|
||||
Rare, // 中级 (紫色 35%)
|
||||
Epic // 高级 (金色 10%)
|
||||
}
|
||||
|
||||
public class BuffOption
|
||||
{
|
||||
public BuffType type;
|
||||
public BuffQuality quality;
|
||||
public int targetHeroIndex; // -1 表示【全体英雄】或【全局】,0~4 表示指定单体英雄
|
||||
public string targetName;
|
||||
public float rawValue; // 单体原始加成数值 (如 0.06f)
|
||||
public float finalValue; // 计算 40% 折扣后的最终加成数值
|
||||
public string titleText;
|
||||
public string descText;
|
||||
public Color qualityColor;
|
||||
public string qualityName;
|
||||
public Sprite iconSprite; // 英雄头像 / 全体头像
|
||||
}
|
||||
|
||||
[Header("UI 节点引用")]
|
||||
public GameObject buffSelectionWindow;
|
||||
public Transform cardsContainer;
|
||||
|
||||
[Header("品质边框 Sprites")]
|
||||
public Sprite commonBorderSprite; // 铜 (初级)
|
||||
public Sprite rareBorderSprite; // 银 (中级)
|
||||
public Sprite epicBorderSprite; // 金 (高级)
|
||||
public Sprite legendaryBorderSprite; // 红 (最高级)
|
||||
|
||||
[Header("头像 Sprites")]
|
||||
public Sprite allIconSprite; // 全体/全局头像 (all.png)
|
||||
|
||||
private bool isWindowShowing = false;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
_instance = this;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 触发 3 选 1 增益弹窗(自动暂停游戏)
|
||||
/// </summary>
|
||||
public void ShowBuffSelection()
|
||||
{
|
||||
if (isWindowShowing) return;
|
||||
|
||||
EnsureUIReferences();
|
||||
if (buffSelectionWindow == null || cardsContainer == null)
|
||||
{
|
||||
Debug.LogWarning("BuffSelectionController: UI 节点缺失,无法弹出 3 选 1。");
|
||||
return;
|
||||
}
|
||||
|
||||
// 生成 3 个随机卡片
|
||||
List<BuffOption> options = GenerateThreeOptions();
|
||||
RenderOptionsUI(options);
|
||||
|
||||
buffSelectionWindow.SetActive(true);
|
||||
isWindowShowing = true;
|
||||
Time.timeScale = 0f; // 暂停游戏让玩家做选择
|
||||
}
|
||||
|
||||
private void RenderOptionsUI(List<BuffOption> options)
|
||||
{
|
||||
int cardCount = cardsContainer.childCount;
|
||||
for (int i = 0; i < cardCount; i++)
|
||||
{
|
||||
var card = cardsContainer.GetChild(i);
|
||||
if (i < options.Count)
|
||||
{
|
||||
card.gameObject.SetActive(true);
|
||||
SetupCardUI(card, options[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
card.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetupCardUI(Transform cardTransform, BuffOption option)
|
||||
{
|
||||
Text buffNameText = cardTransform.Find("BuffName")?.GetComponent<Text>();
|
||||
Text descText = cardTransform.Find("Description")?.GetComponent<Text>();
|
||||
|
||||
if (buffNameText != null)
|
||||
{
|
||||
buffNameText.text = $"[{option.qualityName}] {option.titleText}";
|
||||
buffNameText.color = option.qualityColor;
|
||||
}
|
||||
|
||||
if (descText != null)
|
||||
{
|
||||
descText.text = option.descText;
|
||||
}
|
||||
|
||||
// 设置目标英雄 / 全体 Icon 头像
|
||||
Image iconImage = cardTransform.Find("Icon")?.GetComponent<Image>();
|
||||
if (iconImage != null && option.iconSprite != null)
|
||||
{
|
||||
iconImage.sprite = option.iconSprite;
|
||||
iconImage.enabled = true;
|
||||
}
|
||||
|
||||
// 设置品质边框 (仅更换 buffImage 节点的源图像,不修改缩放和位置)
|
||||
Image borderImage = cardTransform.Find("buffImage")?.GetComponent<Image>();
|
||||
if (borderImage != null)
|
||||
{
|
||||
Sprite borderSprite = GetQualityBorderSprite(option.quality);
|
||||
if (borderSprite != null)
|
||||
{
|
||||
borderImage.sprite = borderSprite;
|
||||
}
|
||||
}
|
||||
|
||||
// 卡牌整体点击选定
|
||||
Button selectBtn = cardTransform.GetComponent<Button>();
|
||||
if (selectBtn == null)
|
||||
{
|
||||
selectBtn = cardTransform.gameObject.AddComponent<Button>();
|
||||
}
|
||||
|
||||
selectBtn.onClick.RemoveAllListeners();
|
||||
selectBtn.onClick.AddListener(() => OnOptionSelected(option));
|
||||
}
|
||||
|
||||
private Sprite GetQualityBorderSprite(BuffQuality quality)
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
if (commonBorderSprite == null) commonBorderSprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>("Assets/Picture/UI/增益边框/铜.png");
|
||||
if (rareBorderSprite == null) rareBorderSprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>("Assets/Picture/UI/增益边框/银.png");
|
||||
if (epicBorderSprite == null) epicBorderSprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>("Assets/Picture/UI/增益边框/金.png");
|
||||
if (legendaryBorderSprite == null) legendaryBorderSprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>("Assets/Picture/UI/增益边框/红.png");
|
||||
#endif
|
||||
switch (quality)
|
||||
{
|
||||
case BuffQuality.Common:
|
||||
return commonBorderSprite != null ? commonBorderSprite : Resources.Load<Sprite>("Picture/UI/增益边框/铜");
|
||||
case BuffQuality.Rare:
|
||||
return rareBorderSprite != null ? rareBorderSprite : Resources.Load<Sprite>("Picture/UI/增益边框/银");
|
||||
case BuffQuality.Epic:
|
||||
return epicBorderSprite != null ? epicBorderSprite : Resources.Load<Sprite>("Picture/UI/增益边框/金");
|
||||
default:
|
||||
return commonBorderSprite;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnOptionSelected(BuffOption option)
|
||||
{
|
||||
ApplyBuffToUnits(option);
|
||||
|
||||
if (buffSelectionWindow != null)
|
||||
{
|
||||
buffSelectionWindow.SetActive(false);
|
||||
}
|
||||
|
||||
isWindowShowing = false;
|
||||
Time.timeScale = 1f; // 恢复游戏正常播放
|
||||
Debug.Log($"玩家选择了增益: [{option.qualityName}] {option.titleText} ({option.descText})");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将选中的增益应用到对应单位
|
||||
/// </summary>
|
||||
private void ApplyBuffToUnits(BuffOption option)
|
||||
{
|
||||
// 1. 全局与玩家技能词条处理
|
||||
if (option.type == BuffType.SummonerCD)
|
||||
{
|
||||
if (PlayerSkillSystem.Instance != null)
|
||||
{
|
||||
PlayerSkillSystem.Instance.cooldownMultiplier *= (1f - option.finalValue);
|
||||
Debug.Log($"召唤师技能 CD 缩减加成: -{option.finalValue * 100f:F1}%,当前 CD 倍率: {PlayerSkillSystem.Instance.cooldownMultiplier:F2}");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (option.type == BuffType.SummonerPower)
|
||||
{
|
||||
if (PlayerSkillSystem.Instance != null)
|
||||
{
|
||||
PlayerSkillSystem.Instance.powerMultiplier *= (1f + option.finalValue);
|
||||
Debug.Log($"召唤师技能威力加成: +{option.finalValue * 100f:F1}%,当前威力倍率: {PlayerSkillSystem.Instance.powerMultiplier:F2}");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (option.type == BuffType.KillGold)
|
||||
{
|
||||
KillGoldMultiplier *= (1f + option.finalValue);
|
||||
Debug.Log($"击杀金币加成: +{option.finalValue * 100f:F1}%,当前击杀金币倍率: {KillGoldMultiplier:F2}");
|
||||
return;
|
||||
}
|
||||
|
||||
if (option.type == BuffType.GoldBonus)
|
||||
{
|
||||
int goldAdd = Mathf.RoundToInt(option.finalValue);
|
||||
if (GoldManager.Instance != null)
|
||||
{
|
||||
GoldManager.Instance.AddGold(goldAdd);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 单位目标词条处理
|
||||
var heroes = FindObjectsOfType<UnitBase>();
|
||||
List<UnitBase> targetUnits = new List<UnitBase>();
|
||||
|
||||
foreach (var hero in heroes)
|
||||
{
|
||||
if (hero == null || !hero.gameObject.activeInHierarchy) continue;
|
||||
UnitTeam team = hero.GetComponent<UnitTeam>();
|
||||
if (team != null && !team.IsLocalPlayerTeam()) continue; // 只给己方英雄加
|
||||
|
||||
targetUnits.Add(hero);
|
||||
}
|
||||
|
||||
if (option.targetHeroIndex >= 0 && option.targetHeroIndex < targetUnits.Count)
|
||||
{
|
||||
// 给单体英雄加成
|
||||
ApplyBuffToOneUnit(targetUnits[option.targetHeroIndex], option);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 给全体英雄加成 (已按 40% 折扣计算)
|
||||
foreach (var unit in targetUnits)
|
||||
{
|
||||
ApplyBuffToOneUnit(unit, option);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyBuffToOneUnit(UnitBase unit, BuffOption option)
|
||||
{
|
||||
if (unit == null) return;
|
||||
|
||||
switch (option.type)
|
||||
{
|
||||
case BuffType.AttackPower:
|
||||
unit.attackPower *= (1f + option.finalValue);
|
||||
break;
|
||||
case BuffType.MaxHealth:
|
||||
WorldHealthBar bar = unit.GetComponent<WorldHealthBar>();
|
||||
if (bar != null)
|
||||
{
|
||||
float healthAdd = bar.maxHealth * option.finalValue;
|
||||
bar.maxHealth += healthAdd;
|
||||
bar.currentHealth += healthAdd; // 提升上限同时补血
|
||||
}
|
||||
break;
|
||||
case BuffType.AttackSpeed:
|
||||
unit.MultiplyAttackSpeed(1f + option.finalValue, 3f);
|
||||
break;
|
||||
case BuffType.CritRate:
|
||||
unit.critRate += option.finalValue;
|
||||
break;
|
||||
case BuffType.Lifesteal:
|
||||
unit.lifestealRate += option.finalValue;
|
||||
break;
|
||||
case BuffType.SkillCharge:
|
||||
unit.skillChargeMultiplier *= (1f + option.finalValue);
|
||||
break;
|
||||
case BuffType.AttackRange:
|
||||
unit.attackRange += option.finalValue;
|
||||
break;
|
||||
case BuffType.DamageReduction:
|
||||
unit.damageReductionRate += option.finalValue;
|
||||
break;
|
||||
case BuffType.Shield:
|
||||
WorldHealthBar shieldBar = unit.GetComponent<WorldHealthBar>();
|
||||
if (shieldBar != null)
|
||||
{
|
||||
float shieldAdd = shieldBar.maxHealth * option.finalValue;
|
||||
shieldBar.AddShield(shieldAdd);
|
||||
}
|
||||
break;
|
||||
case BuffType.EmergencyHeal:
|
||||
WorldHealthBar healBar = unit.GetComponent<WorldHealthBar>();
|
||||
if (healBar != null)
|
||||
{
|
||||
healBar.Heal(healBar.maxHealth * option.finalValue);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private List<BuffOption> GenerateThreeOptions()
|
||||
{
|
||||
List<BuffOption> list = new List<BuffOption>();
|
||||
HashSet<BuffType> usedTypes = new HashSet<BuffType>();
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
BuffOption opt;
|
||||
int maxAttempts = 10;
|
||||
do
|
||||
{
|
||||
opt = CreateRandomOption(i);
|
||||
maxAttempts--;
|
||||
} while (usedTypes.Contains(opt.type) && maxAttempts > 0);
|
||||
|
||||
usedTypes.Add(opt.type);
|
||||
list.Add(opt);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
// 开放抽取的词条池 (暂时屏蔽 7:SummonerCD, 8:SummonerPower, 9:AttackRange, 12:KillGold, 13:GoldBonus)
|
||||
private static readonly BuffType[] AvailableBuffTypes = new BuffType[]
|
||||
{
|
||||
BuffType.AttackPower, // 1. 攻击力
|
||||
BuffType.MaxHealth, // 2. 最大生命值
|
||||
BuffType.AttackSpeed, // 3. 攻击速度
|
||||
BuffType.CritRate, // 4. 暴击率
|
||||
BuffType.Lifesteal, // 5. 通用吸血
|
||||
BuffType.SkillCharge, // 6. 技能充能
|
||||
BuffType.DamageReduction, // 10. 伤害减免
|
||||
BuffType.Shield, // 11. 护盾生成
|
||||
BuffType.EmergencyHeal // 14. 紧急救急
|
||||
};
|
||||
|
||||
private BuffOption CreateRandomOption(int seedOffset)
|
||||
{
|
||||
BuffOption opt = new BuffOption();
|
||||
|
||||
// 从当前开放的词条池中随机选择
|
||||
opt.type = AvailableBuffTypes[Random.Range(0, AvailableBuffTypes.Length)];
|
||||
|
||||
// 随机品质 (初级55%, 中级35%, 高级10%)
|
||||
float rollQuality = Random.value;
|
||||
if (rollQuality < 0.55f)
|
||||
{
|
||||
opt.quality = BuffQuality.Common;
|
||||
opt.qualityName = "初级";
|
||||
opt.qualityColor = new Color(0.85f, 0.85f, 0.85f); // 白色
|
||||
}
|
||||
else if (rollQuality < 0.90f)
|
||||
{
|
||||
opt.quality = BuffQuality.Rare;
|
||||
opt.qualityName = "中级";
|
||||
opt.qualityColor = new Color(0.7f, 0.35f, 0.95f); // 紫色
|
||||
}
|
||||
else
|
||||
{
|
||||
opt.quality = BuffQuality.Epic;
|
||||
opt.qualityName = "高级";
|
||||
opt.qualityColor = new Color(1f, 0.8f, 0.15f); // 金色
|
||||
}
|
||||
|
||||
// 判断是否为全局属性
|
||||
bool isGlobalOnly = (opt.type == BuffType.SummonerCD ||
|
||||
opt.type == BuffType.SummonerPower ||
|
||||
opt.type == BuffType.KillGold ||
|
||||
opt.type == BuffType.GoldBonus);
|
||||
|
||||
List<UnitBase> activeHeroes = GetLocalPlayerHeroes();
|
||||
bool isAll = isGlobalOnly || (Random.value < 0.5f) || (activeHeroes.Count == 0);
|
||||
|
||||
string heroDisplayName = "";
|
||||
if (isAll)
|
||||
{
|
||||
opt.targetHeroIndex = -1;
|
||||
opt.iconSprite = GetAllIconSprite();
|
||||
}
|
||||
else
|
||||
{
|
||||
opt.targetHeroIndex = Random.Range(0, activeHeroes.Count);
|
||||
UnitBase hero = activeHeroes[opt.targetHeroIndex];
|
||||
opt.iconSprite = GetHeroIconSprite(hero.characterDataName);
|
||||
|
||||
if (!string.IsNullOrEmpty(hero.characterDataName))
|
||||
{
|
||||
var data = Resources.Load<CharacterData>($"Data/{hero.characterDataName}");
|
||||
heroDisplayName = data != null && !string.IsNullOrEmpty(data.characterName) ? data.characterName : hero.characterDataName.Replace("Data", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
heroDisplayName = $"己方英雄 #{opt.targetHeroIndex + 1}";
|
||||
}
|
||||
}
|
||||
|
||||
// 计算数值
|
||||
opt.rawValue = GetBaseValue(opt.type, opt.quality);
|
||||
if (isAll && !isGlobalOnly)
|
||||
{
|
||||
opt.finalValue = opt.rawValue * 0.4f; // 40% 全体折扣法则
|
||||
}
|
||||
else
|
||||
{
|
||||
opt.finalValue = opt.rawValue;
|
||||
}
|
||||
|
||||
// 生成属性名称与描述
|
||||
string attrName = GetTypeName(opt.type);
|
||||
string targetStr = isGlobalOnly ? "玩家/全局" : (isAll ? "全体英雄" : heroDisplayName);
|
||||
opt.titleText = $"{targetStr} · {attrName}";
|
||||
opt.descText = FormatValueDesc(opt.type, opt.finalValue);
|
||||
|
||||
return opt;
|
||||
}
|
||||
|
||||
private List<UnitBase> GetLocalPlayerHeroes()
|
||||
{
|
||||
List<UnitBase> list = new List<UnitBase>();
|
||||
var heroes = FindObjectsOfType<UnitBase>();
|
||||
foreach (var hero in heroes)
|
||||
{
|
||||
if (hero == null || !hero.gameObject.activeInHierarchy) continue;
|
||||
UnitTeam team = hero.GetComponent<UnitTeam>();
|
||||
if (team != null && !team.IsLocalPlayerTeam()) continue;
|
||||
list.Add(hero);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private Sprite GetAllIconSprite()
|
||||
{
|
||||
if (allIconSprite != null) return allIconSprite;
|
||||
#if UNITY_EDITOR
|
||||
allIconSprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>("Assets/Picture/角色头像/all.png");
|
||||
if (allIconSprite != null) return allIconSprite;
|
||||
#endif
|
||||
return Resources.Load<Sprite>("Picture/角色头像/all");
|
||||
}
|
||||
|
||||
private Sprite GetHeroIconSprite(string characterDataName)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(characterDataName))
|
||||
{
|
||||
var data = Resources.Load<CharacterData>($"Data/{characterDataName}");
|
||||
if (data != null && data.cardIcon != null)
|
||||
{
|
||||
return data.cardIcon;
|
||||
}
|
||||
|
||||
string cleanName = characterDataName.Replace("Data", "").Trim();
|
||||
if (cleanName == "狂暴狼人") cleanName = "荒野狼人";
|
||||
if (cleanName == "盾卫") cleanName = "盾卫头像";
|
||||
|
||||
#if UNITY_EDITOR
|
||||
var sprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>($"Assets/Picture/角色头像/{cleanName}.png");
|
||||
if (sprite != null) return sprite;
|
||||
#endif
|
||||
}
|
||||
return GetAllIconSprite();
|
||||
}
|
||||
|
||||
private string FormatValueDesc(BuffType type, float value)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case BuffType.AttackPower:
|
||||
case BuffType.MaxHealth:
|
||||
case BuffType.AttackSpeed:
|
||||
case BuffType.CritRate:
|
||||
case BuffType.Lifesteal:
|
||||
case BuffType.SkillCharge:
|
||||
case BuffType.SummonerPower:
|
||||
case BuffType.DamageReduction:
|
||||
case BuffType.KillGold:
|
||||
return $"{GetTypeName(type)} +{value * 100f:F1}%";
|
||||
case BuffType.SummonerCD:
|
||||
return $"{GetTypeName(type)} -{value * 100f:F1}%";
|
||||
case BuffType.AttackRange:
|
||||
return $"{GetTypeName(type)} +{value:F1} 米";
|
||||
case BuffType.Shield:
|
||||
return $"获得 {value * 100f:F0}% 最大生命值的护盾";
|
||||
case BuffType.GoldBonus:
|
||||
return $"立即获得 +{value:F0} 金币";
|
||||
case BuffType.EmergencyHeal:
|
||||
return $"恢复 {value * 100f:F0}% 最大生命值";
|
||||
default:
|
||||
return $"{GetTypeName(type)} +{value}";
|
||||
}
|
||||
}
|
||||
|
||||
private float GetBaseValue(BuffType type, BuffQuality quality)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case BuffType.AttackPower:
|
||||
return quality == BuffQuality.Common ? 0.06f : (quality == BuffQuality.Rare ? 0.12f : 0.20f);
|
||||
case BuffType.MaxHealth:
|
||||
return quality == BuffQuality.Common ? 0.10f : (quality == BuffQuality.Rare ? 0.18f : 0.30f);
|
||||
case BuffType.AttackSpeed:
|
||||
return quality == BuffQuality.Common ? 0.05f : (quality == BuffQuality.Rare ? 0.10f : 0.16f);
|
||||
case BuffType.CritRate:
|
||||
return quality == BuffQuality.Common ? 0.06f : (quality == BuffQuality.Rare ? 0.12f : 0.20f);
|
||||
case BuffType.Lifesteal:
|
||||
return quality == BuffQuality.Common ? 0.04f : (quality == BuffQuality.Rare ? 0.08f : 0.14f);
|
||||
case BuffType.SkillCharge:
|
||||
return quality == BuffQuality.Common ? 0.08f : (quality == BuffQuality.Rare ? 0.15f : 0.25f);
|
||||
case BuffType.SummonerCD:
|
||||
return quality == BuffQuality.Common ? 0.05f : (quality == BuffQuality.Rare ? 0.10f : 0.18f);
|
||||
case BuffType.SummonerPower:
|
||||
return quality == BuffQuality.Common ? 0.08f : (quality == BuffQuality.Rare ? 0.15f : 0.25f);
|
||||
case BuffType.AttackRange:
|
||||
return quality == BuffQuality.Common ? 0.5f : (quality == BuffQuality.Rare ? 1.0f : 1.8f);
|
||||
case BuffType.DamageReduction:
|
||||
return quality == BuffQuality.Common ? 0.05f : (quality == BuffQuality.Rare ? 0.10f : 0.16f);
|
||||
case BuffType.Shield:
|
||||
return quality == BuffQuality.Common ? 0.15f : (quality == BuffQuality.Rare ? 0.25f : 0.40f);
|
||||
case BuffType.KillGold:
|
||||
return quality == BuffQuality.Common ? 0.15f : (quality == BuffQuality.Rare ? 0.30f : 0.50f);
|
||||
case BuffType.GoldBonus:
|
||||
return quality == BuffQuality.Common ? 30f : (quality == BuffQuality.Rare ? 60f : 100f);
|
||||
case BuffType.EmergencyHeal:
|
||||
return quality == BuffQuality.Common ? 0.25f : (quality == BuffQuality.Rare ? 0.40f : 0.60f);
|
||||
default:
|
||||
return 0.10f;
|
||||
}
|
||||
}
|
||||
|
||||
private string GetTypeName(BuffType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case BuffType.AttackPower: return "攻击力";
|
||||
case BuffType.MaxHealth: return "最大生命值";
|
||||
case BuffType.AttackSpeed: return "攻击速度";
|
||||
case BuffType.CritRate: return "暴击率";
|
||||
case BuffType.Lifesteal: return "通用吸血";
|
||||
case BuffType.SkillCharge: return "技能充能";
|
||||
case BuffType.SummonerCD: return "召唤师技能CD";
|
||||
case BuffType.SummonerPower: return "召唤师技能威力";
|
||||
case BuffType.AttackRange: return "攻击射程";
|
||||
case BuffType.DamageReduction: return "伤害减免";
|
||||
case BuffType.Shield: return "护盾生成";
|
||||
case BuffType.KillGold: return "击杀金币加成";
|
||||
case BuffType.GoldBonus: return "招财进宝";
|
||||
case BuffType.EmergencyHeal: return "紧急救急";
|
||||
default: return "属性";
|
||||
}
|
||||
}
|
||||
|
||||
private void EnsureUIReferences()
|
||||
{
|
||||
var canvas = GameObject.Find("TowerDefenseCanvas");
|
||||
if (canvas == null) return;
|
||||
|
||||
if (buffSelectionWindow == null)
|
||||
{
|
||||
var winTrans = canvas.transform.Find("BuffSelectionWindow");
|
||||
if (winTrans != null) buffSelectionWindow = winTrans.gameObject;
|
||||
}
|
||||
|
||||
if (buffSelectionWindow != null && cardsContainer == null)
|
||||
{
|
||||
var containerTrans = buffSelectionWindow.transform.Find("BuffPanel/BuffCardsContainer");
|
||||
if (containerTrans != null) cardsContainer = containerTrans;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: B34YtiisVXrDbIWqaQt7Wn+BpSoyM0RReaDDaW/U57cQHnnp/xZKR+4=
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -23,6 +23,7 @@ public class PlayerSaveJson
|
||||
public string playerId = "local_player";
|
||||
public PlayerOwnedCharacterJson[] unlockedCharacters = new PlayerOwnedCharacterJson[0];
|
||||
public string[] currentDeck = new string[0];
|
||||
public string[] equippedSummonerSkills = new string[] { "神圣赞歌", "陨石轰炸" }; // 装备的 2 个召唤师技能名称
|
||||
public SavedFormationData savedFormation = new SavedFormationData();
|
||||
}
|
||||
|
||||
@@ -35,6 +36,7 @@ public class PlayerDataManager : MonoBehaviour
|
||||
|
||||
public List<PlayerCharacterData> ownedCharacters = new List<PlayerCharacterData>();
|
||||
public PlayerCharacterData[] currentDeck = new PlayerCharacterData[5];
|
||||
public string[] equippedSummonerSkills = new string[] { "神圣赞歌", "陨石轰炸" };
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@@ -70,6 +72,11 @@ public class PlayerDataManager : MonoBehaviour
|
||||
currentDeck = new PlayerCharacterData[5];
|
||||
for (int i = 0; i < save.currentDeck.Length && i < currentDeck.Length; i++)
|
||||
currentDeck[i] = GetCharacterData(save.currentDeck[i]);
|
||||
|
||||
if (save.equippedSummonerSkills != null && save.equippedSummonerSkills.Length >= 2)
|
||||
{
|
||||
equippedSummonerSkills = new string[] { save.equippedSummonerSkills[0], save.equippedSummonerSkills[1] };
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -320,7 +320,7 @@ public class MainCharacterCombat : MonoBehaviour
|
||||
float finalAttack = pendingSummonPlayerData.GetAttackPower(pendingSummonCharacterData);
|
||||
float finalSpeed = pendingSummonPlayerData.GetMoveSpeed(pendingSummonCharacterData);
|
||||
|
||||
unitBase.InitializeFromPlayerData(finalHealth, finalAttack, finalSpeed);
|
||||
unitBase.InitializeFromPlayerData(finalHealth, finalAttack, finalSpeed, pendingSummonPlayerData.level);
|
||||
|
||||
Debug.Log($"主角召唤单位:{summoned.name} Lv.{pendingSummonPlayerData.level} HP={finalHealth} ATK={finalAttack} position={spawnPosition}");
|
||||
}
|
||||
|
||||
@@ -30,6 +30,13 @@ public class UnitBase : MonoBehaviour
|
||||
[Min(0f)]
|
||||
public float attackPower = 10f;
|
||||
|
||||
[Header("战术增益扩展属性")]
|
||||
public float critRate = 0f; // 暴击率 (如 0.15 = 15%)
|
||||
public float critMultiplier = 1.5f; // 暴击伤害倍数
|
||||
public float lifestealRate = 0f; // 伤害吸血比例 (如 0.08 = 8%)
|
||||
public float damageReductionRate = 0f; // 伤害减免比例 (如 0.10 = 10%, 最高 75%)
|
||||
public float skillChargeMultiplier = 1f; // 技能能量充能倍率 (如 1.25 = +25%)
|
||||
|
||||
//完整攻击动作时长,单位为秒;设置为0时使用动画真实时长
|
||||
[Min(0f)]
|
||||
public float attackDuration = 0f;
|
||||
@@ -87,6 +94,13 @@ public class UnitBase : MonoBehaviour
|
||||
[Tooltip("开启后,只打「离自己阵位不超过 寻敌视野 detectionRange」的敌人,避免一路推到很远的地方。")]
|
||||
public bool useAnchorLeash = false;
|
||||
|
||||
[Header("警戒线出击")]
|
||||
[Tooltip("开启后,只有当敌人进入警戒线(Z <= engagementZThreshold)后才全员出击;出击后视野全开,战斗中途不回家。")]
|
||||
public bool useEngagementZLine = true;
|
||||
public float engagementZThreshold = 10.0f;
|
||||
|
||||
private static bool isHeroTeamEngaged = false;
|
||||
|
||||
//角色状态
|
||||
private State state = State.Alert;
|
||||
|
||||
@@ -142,10 +156,11 @@ public class UnitBase : MonoBehaviour
|
||||
|
||||
|
||||
// Start is called before the first frame update
|
||||
public void InitializeFromPlayerData(float health, float attack, float moveSpeed)
|
||||
public void InitializeFromPlayerData(float health, float attack, float moveSpeed, int unitLvl = 1)
|
||||
{
|
||||
attackPower = attack;
|
||||
speed = moveSpeed;
|
||||
level = Mathf.Max(1, unitLvl);
|
||||
|
||||
// 同步更新 NavMeshAgent 速度
|
||||
if (navAgent == null)
|
||||
@@ -166,6 +181,7 @@ public class UnitBase : MonoBehaviour
|
||||
{
|
||||
worldHealthBar.maxHealth = health;
|
||||
worldHealthBar.currentHealth = health;
|
||||
worldHealthBar.SetLevel(level);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -261,10 +277,14 @@ public class UnitBase : MonoBehaviour
|
||||
//攻击状态下等待Animator报告攻击动画播放完成。
|
||||
if (state == State.Attack)
|
||||
{
|
||||
// 攻击时直接禁用 NavMeshAgent,彻底停止移动
|
||||
if (navAgent != null && navAgent.enabled)
|
||||
// 攻击时暂停 NavMeshAgent,但保持 enabled 维持物理/寻路障碍排体
|
||||
if (navAgent != null && navAgent.enabled && navAgent.isOnNavMesh)
|
||||
{
|
||||
navAgent.enabled = false;
|
||||
if (!navAgent.isStopped)
|
||||
{
|
||||
navAgent.isStopped = true;
|
||||
navAgent.velocity = Vector3.zero;
|
||||
}
|
||||
}
|
||||
|
||||
animator.SetInteger("speed", 0);
|
||||
@@ -330,12 +350,16 @@ public class UnitBase : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
|
||||
//场上没有敌人时进入待机,不再巡逻移动
|
||||
//场上完全没有敌人或整波清理干净时,才进入待机回格位
|
||||
state = State.Alert;
|
||||
if (returnToAnchorWhenIdle && anchorInitialized && !IsAtAnchor())
|
||||
if (!HasAnyEnemyOnField())
|
||||
{
|
||||
ReturnToAnchor();
|
||||
return;
|
||||
isHeroTeamEngaged = false;
|
||||
if (returnToAnchorWhenIdle && anchorInitialized && !IsAtAnchor())
|
||||
{
|
||||
ReturnToAnchor();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 召唤师模式下动画由 SummonerClickMovement 控制(移动时 speed=1,站定后 speed=0)
|
||||
@@ -418,13 +442,20 @@ public class UnitBase : MonoBehaviour
|
||||
return false;
|
||||
}
|
||||
|
||||
// 战术增益:伤害减免 (最高 75%)
|
||||
if (damageReductionRate > 0f)
|
||||
{
|
||||
float cappedReduction = Mathf.Clamp(damageReductionRate, 0f, 0.75f);
|
||||
damage *= (1f - cappedReduction);
|
||||
}
|
||||
|
||||
healthBar.TakeDamage(ModifyIncomingDamage(damage, attacker), attacker);
|
||||
return true;
|
||||
}
|
||||
|
||||
//根运动协调(applyRootMotion=true 时由动画系统每帧回调):
|
||||
//走路(agent 驱动):只叠加动画的侧向摇摆和转身差量,前向分量丢弃(防双倍移速);
|
||||
//攻击/技能(agent 已禁用):root motion 全量生效(前冲、后撤、带位移的攻击动作)。
|
||||
//攻击/技能:保持 navAgent 开启作为实体阻挡,根运动全量生效,同时实时同步 navAgent.nextPosition 避免拉扯漂移。
|
||||
private void OnAnimatorMove()
|
||||
{
|
||||
if (animator == null) return;
|
||||
@@ -433,18 +464,32 @@ public class UnitBase : MonoBehaviour
|
||||
delta.y = 0f;
|
||||
Quaternion yawDelta = Quaternion.Euler(0f, animator.deltaRotation.eulerAngles.y, 0f);
|
||||
|
||||
bool isAttackingOrSkill = state == State.Attack || state == State.Skill || isPlayingSkill;
|
||||
|
||||
if (navAgent != null && navAgent.enabled && navAgent.isOnNavMesh)
|
||||
{
|
||||
// 移动中:侧向分量(垂直于朝向)保留 = 大摇大摆的摇摆;同步 agent 位置防漂移
|
||||
if (delta.sqrMagnitude > 1e-10f)
|
||||
if (isAttackingOrSkill)
|
||||
{
|
||||
Vector3 lateral = delta - Vector3.Project(delta, transform.forward);
|
||||
if (lateral.sqrMagnitude > 1e-10f)
|
||||
// 攻击/技能期间:全量应用根运动位移,并实时同步 agent 位置,保持阻挡体积且不发生位移偏差
|
||||
if (delta.sqrMagnitude > 1e-10f)
|
||||
{
|
||||
transform.position += lateral;
|
||||
transform.position += delta;
|
||||
navAgent.nextPosition = transform.position;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 移动中:侧向分量(垂直于朝向)保留 = 大摇大摆的摇摆;同步 agent 位置防漂移
|
||||
if (delta.sqrMagnitude > 1e-10f)
|
||||
{
|
||||
Vector3 lateral = delta - Vector3.Project(delta, transform.forward);
|
||||
if (lateral.sqrMagnitude > 1e-10f)
|
||||
{
|
||||
transform.position += lateral;
|
||||
navAgent.nextPosition = transform.position;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -572,6 +617,27 @@ public class UnitBase : MonoBehaviour
|
||||
return other == transform || other.IsChildOf(transform) || transform.IsChildOf(other);
|
||||
}
|
||||
|
||||
/// <summary>检查全场是否还有存活的敌方单位。</summary>
|
||||
private bool HasAnyEnemyOnField()
|
||||
{
|
||||
var myTeam = GetComponent<UnitTeam>();
|
||||
if (myTeam == null) return false;
|
||||
|
||||
UnitTeam[] allTeams = FindObjectsOfType<UnitTeam>();
|
||||
foreach (var unit in allTeams)
|
||||
{
|
||||
if (unit == null || !unit.gameObject.activeInHierarchy) continue;
|
||||
if (!myTeam.IsEnemy(unit.gameObject)) continue;
|
||||
if (IsOwnHierarchy(unit.transform)) continue;
|
||||
|
||||
WorldHealthBar healthBar = unit.GetComponentInParent<WorldHealthBar>();
|
||||
if (healthBar != null && healthBar.IsDead) continue;
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//查找 detectionRange 内最近的敌方战斗单位
|
||||
private GameObject FindNearestEnemyUnit()
|
||||
{
|
||||
@@ -582,6 +648,44 @@ public class UnitBase : MonoBehaviour
|
||||
return null;
|
||||
}
|
||||
|
||||
// 己方英雄团队警戒线出击逻辑:敌人没跨过警戒线(Z <= engagementZThreshold)前按兵不动
|
||||
if (useEngagementZLine && (myTeam.teamId == 0 || CompareTag("Friend") || CompareTag("Untagged")))
|
||||
{
|
||||
if (!HasAnyEnemyOnField())
|
||||
{
|
||||
isHeroTeamEngaged = false;
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!isHeroTeamEngaged)
|
||||
{
|
||||
bool enemyCrossedLine = false;
|
||||
UnitTeam[] allTeamsForCheck = FindObjectsOfType<UnitTeam>();
|
||||
foreach (var unit in allTeamsForCheck)
|
||||
{
|
||||
if (unit == null || !unit.gameObject.activeInHierarchy) continue;
|
||||
if (!myTeam.IsEnemy(unit.gameObject)) continue;
|
||||
if (IsOwnHierarchy(unit.transform)) continue;
|
||||
|
||||
WorldHealthBar healthBar = unit.GetComponentInParent<WorldHealthBar>();
|
||||
if (healthBar != null && healthBar.IsDead) continue;
|
||||
|
||||
if (unit.transform.position.z <= engagementZThreshold)
|
||||
{
|
||||
enemyCrossedLine = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!enemyCrossedLine)
|
||||
{
|
||||
return null; // 敌人尚未到达警戒线,保持在阵位待命
|
||||
}
|
||||
|
||||
isHeroTeamEngaged = true; // 触发全员出击!
|
||||
}
|
||||
}
|
||||
|
||||
Vector3 myPos = transform.position;
|
||||
|
||||
GameObject nearestUnit = null;
|
||||
@@ -638,6 +742,15 @@ public class UnitBase : MonoBehaviour
|
||||
distance = flat.magnitude;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 非建筑目标:扣除双方的阻挡半径,计算贴边距离
|
||||
float myRadius = navAgent != null ? navAgent.radius : 0.5f;
|
||||
var targetAgent = opponent.GetComponentInParent<UnityEngine.AI.NavMeshAgent>();
|
||||
float targetRadius = targetAgent != null ? targetAgent.radius : 0.5f;
|
||||
|
||||
distance = Mathf.Max(0f, distance - (myRadius + targetRadius));
|
||||
}
|
||||
|
||||
// 攻击状态下增加容差,避免目标轻微移动导致状态频繁切换
|
||||
if (state == State.Attack)
|
||||
@@ -762,10 +875,11 @@ public class UnitBase : MonoBehaviour
|
||||
{
|
||||
target = friend;
|
||||
|
||||
// 攻击时直接禁用 NavMeshAgent(彻底停止移动)
|
||||
if (navAgent != null && navAgent.enabled)
|
||||
// 攻击时暂停 NavMeshAgent,但保持 enabled 维持物理/寻路障碍排体
|
||||
if (navAgent != null && navAgent.enabled && navAgent.isOnNavMesh)
|
||||
{
|
||||
navAgent.enabled = false;
|
||||
navAgent.isStopped = true;
|
||||
navAgent.velocity = Vector3.zero;
|
||||
}
|
||||
|
||||
FaceTarget(friend);
|
||||
@@ -873,9 +987,20 @@ public class UnitBase : MonoBehaviour
|
||||
|
||||
private void ApplyDirectDamage(GameObject opponent)
|
||||
{
|
||||
UnitBase targetUnit = opponent.GetComponentInParent<UnitBase>();
|
||||
if (targetUnit != null && targetUnit.ReceiveDamage(attackPower, gameObject))
|
||||
float damage = attackPower;
|
||||
if (critRate > 0f && Random.value < critRate)
|
||||
{
|
||||
damage *= critMultiplier;
|
||||
Debug.Log($"{gameObject.name} 触发暴击!造成 {damage:F1} 伤害");
|
||||
}
|
||||
|
||||
UnitBase targetUnit = opponent.GetComponentInParent<UnitBase>();
|
||||
if (targetUnit != null && targetUnit.ReceiveDamage(damage, gameObject))
|
||||
{
|
||||
if (lifestealRate > 0f && worldHealthBar != null)
|
||||
{
|
||||
worldHealthBar.Heal(damage * lifestealRate);
|
||||
}
|
||||
RegisterAttackHit();
|
||||
return;
|
||||
}
|
||||
@@ -883,7 +1008,11 @@ public class UnitBase : MonoBehaviour
|
||||
WorldHealthBar targetHealthBar = opponent.GetComponentInParent<WorldHealthBar>();
|
||||
if (targetHealthBar != null)
|
||||
{
|
||||
targetHealthBar.TakeDamage(attackPower, gameObject);
|
||||
targetHealthBar.TakeDamage(damage, gameObject);
|
||||
if (lifestealRate > 0f && worldHealthBar != null)
|
||||
{
|
||||
worldHealthBar.Heal(damage * lifestealRate);
|
||||
}
|
||||
RegisterAttackHit();
|
||||
}
|
||||
}
|
||||
@@ -1065,7 +1194,13 @@ public class UnitBase : MonoBehaviour
|
||||
Projectile projectile = projectileObject.GetComponent<Projectile>();
|
||||
if (projectile != null)
|
||||
{
|
||||
projectile.Initialize(opponent, attackPower, gameObject, projectileSpeed, projectileLifetime);
|
||||
float damage = attackPower;
|
||||
if (critRate > 0f && Random.value < critRate)
|
||||
{
|
||||
damage *= critMultiplier;
|
||||
Debug.Log($"{gameObject.name} 远程攻击触发暴击!造成 {damage:F1} 伤害");
|
||||
}
|
||||
projectile.Initialize(opponent, damage, gameObject, projectileSpeed, projectileLifetime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1105,7 +1240,8 @@ public class UnitBase : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
|
||||
worldHealthBar.AddEnergy(energyPerAttack);
|
||||
float actualEnergy = energyPerAttack * skillChargeMultiplier;
|
||||
worldHealthBar.AddEnergy(actualEnergy);
|
||||
}
|
||||
|
||||
private float GetSkillAnimationSpeed(float targetDuration)
|
||||
@@ -1134,6 +1270,13 @@ public class UnitBase : MonoBehaviour
|
||||
? targetDuration + 0.5f
|
||||
: Mathf.Max(animationDuration + 0.5f, 2f);
|
||||
state = State.Skill;
|
||||
|
||||
if (navAgent != null && navAgent.enabled && navAgent.isOnNavMesh)
|
||||
{
|
||||
navAgent.isStopped = true;
|
||||
navAgent.velocity = Vector3.zero;
|
||||
}
|
||||
|
||||
animator.speed = GetSkillAnimationSpeed(targetDuration);
|
||||
animator.SetInteger("speed", 0);
|
||||
animator.SetTrigger("skill");
|
||||
|
||||
@@ -70,16 +70,16 @@
|
||||
"waveIndex": 9,
|
||||
"restBeforeWave": 8.0,
|
||||
"spawnInterval": 0.8,
|
||||
"enemyIds": ["castle_blue_guard_q", "castle_archer", "castle_gold_guard", "蓝角蛮卒"],
|
||||
"counts": [5, 4, 2, 1],
|
||||
"enemyIds": ["castle_blue_guard_q", "castle_archer", "castle_gold_guard"],
|
||||
"counts": [6, 4, 3],
|
||||
"spawnX": [-4.5, -1.5, 1.5, 4.5]
|
||||
},
|
||||
{
|
||||
"waveIndex": 10,
|
||||
"restBeforeWave": 10.0,
|
||||
"spawnInterval": 0.8,
|
||||
"enemyIds": ["castle_blue_guard_q", "castle_archer", "castle_gold_guard", "蓝角蛮卒"],
|
||||
"counts": [6, 4, 3, 2],
|
||||
"enemyIds": ["castle_blue_guard_q", "castle_archer", "castle_gold_guard"],
|
||||
"counts": [8, 5, 4],
|
||||
"spawnX": [-4.5, -1.5, 1.5, 4.5]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: Wn4ctSz5VX02aiwwxtWuQmfRMVOh72bXhZNZI+pxl6I0oCQXTsjGatk=
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: CnIe5Cv4AXy9PFnWOGh80u8JnGAOGf1WG/1TU3G+Xoytx2zQkGmScHM=
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: CnkZ4yOrBnL+63cilUyVq7QK9CEYaLU9SA3kumuDhOGAu0gmiJWKKGA=
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: circle_AB
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: a96208ca22e1415bbbb36ac6fca1635b, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 0
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 10
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 3
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 2
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.15
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 6.6666665, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ea9d84875b94044a0c850082890b743
|
||||
timeCreated: 1445700447
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: circle_sharp_AB
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 867b3ae76afa4416abe91a48db029392, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 0
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 10
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 3
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 2
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.3
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 3.3333333, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 44814cd5985c43e2b7677dc2f6cd79ff
|
||||
timeCreated: 1445700447
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: circlestretchy_AB
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: bdce086f3d2b4785bcd02bde0326f543, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 10
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 1
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 2
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.5
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 2, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1d07097153b8414e8995e860637f39ed
|
||||
timeCreated: 1528674814
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: cloud_2x2_default_AB
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 4aa9b0f764da42649f1e6e58f9a43e19, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 10
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 1
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 2
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.25
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 4, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8524c8dc26d0435ba9d788d6ebfa9865
|
||||
timeCreated: 1520820428
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: cloud_2x2_soft_AB
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 2415a61019924a3f98520fa4a2266920, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 0
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 10
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 1
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 2
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 1
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 1, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa0e457fd3b0430b85fab77373cc915d
|
||||
timeCreated: 1520820431
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: glow1_ADD
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 39a3d53631a2474680b2d09f8d3961ce, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 0
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 1
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 1.5
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 4
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.4
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 2.5, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 678cd3b6bbc4450d8f55875d9ac1dad5
|
||||
timeCreated: 1445967777
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: glow2_ADD
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: a1d8ae090a844019a175431376745d28, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 0
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 1
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 3
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 4
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.5
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 2, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 716a2e1add0b4ecc826ad67aa3115734
|
||||
timeCreated: 1447855426
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: gradient_edges_ADD
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: a122547915c947369c54ce2a7f7f34c0, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 0
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 1
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 1
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 4
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.5
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 2, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd2151f5feb64ca2a59dffef57ba78de
|
||||
timeCreated: 1551576473
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: lightray2_ADD
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 6edc4be3ce694940b09e6cbcd5bdc796, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 1
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 1
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 4
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.2
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 26b47da8c15341afb0890eb265b53e43
|
||||
timeCreated: 1445889236
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ring_ADD
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: fc9340dbd5f34a379e0900c716ff45dd, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 0
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 1
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 3
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 4
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.5
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 2, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 58c4c5cf78c84bcb8fcf3b3e13d56135
|
||||
timeCreated: 1447181380
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ring_shockwave_ADD
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: a8dfaae1b5d14ab5a6383171561998ca, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 0
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 1
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 3
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 4
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.5
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 2, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0009f92f7b91468f8b843627ba8988bf
|
||||
timeCreated: 1447181380
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,74 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: solid_AB
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
- _FADING_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 10
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 3
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 2
|
||||
- _SoftParticlesEnabled: 1
|
||||
- _SoftParticlesFarFadeDistance: 0.2
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 5, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e1402667035a43c6a9c16edf3d1042e0
|
||||
timeCreated: 1448817852
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,73 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: sparkle2_ADD
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: b6dbbe1727c4420db5a4b5b8a122baec, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 1
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 1
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 4
|
||||
- _SoftParticlesEnabled: 0
|
||||
- _SoftParticlesFarFadeDistance: 1
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 02a2293636af421ea4366752630129be
|
||||
timeCreated: 1446214052
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,73 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:yousandi.cn,2023:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: sparkle_ADD
|
||||
m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- _ALPHABLEND_ON
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 0
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
disabledShaderPasses:
|
||||
- GRABPASS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 1ad8b1345ebf46868e8e6a6868eb9b19, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _BlendOp: 0
|
||||
- _BumpScale: 1
|
||||
- _CameraFadingEnabled: 0
|
||||
- _CameraFarFadeDistance: 2
|
||||
- _CameraNearFadeDistance: 1
|
||||
- _ColorMode: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DistortionBlend: 0.5
|
||||
- _DistortionEnabled: 0
|
||||
- _DistortionStrength: 1
|
||||
- _DistortionStrengthScaled: 0
|
||||
- _DstBlend: 1
|
||||
- _EmissionEnabled: 0
|
||||
- _FlipbookMode: 0
|
||||
- _InvFade: 1
|
||||
- _LightingEnabled: 0
|
||||
- _Mode: 4
|
||||
- _SoftParticlesEnabled: 0
|
||||
- _SoftParticlesFarFadeDistance: 1
|
||||
- _SoftParticlesNearFadeDistance: 0
|
||||
- _SrcBlend: 5
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||