Merge branch '风筝交互优化' into 'develop'
art: 添加风筝分层底图与风筝层素材 See merge request aibis-dream/aibis-dream!736
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 092acdb85d0c47e28e9c49f030be3135
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aba4ab500f264e2e84eb58a699c01f67
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50642e42d3b44ad6a30f9ba57f0d079f
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c99d7ea9ef174a91ac39b4edcb4022bc
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5a95e01c21ff4ca5ac4935f3d389d154
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a49931b5b369446a8f10eb18c909d045
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5143563b9aa149dd95fb22e0cdb217f0
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a8328da1309d4245805369101ec469ec
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3e85a09942fc46ab834adc9e001496fc
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 315c4cc7b8124891bf25888819219c3f
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 317a2f7d9ab942a7814fb93917398ce7
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d01c57d9b2d64bf6992635225eb1fc48
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
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
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
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: 40
|
||||
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: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
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: WebGL
|
||||
maxTextureSize: 2048
|
||||
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: Android
|
||||
maxTextureSize: 2048
|
||||
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
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -92,6 +92,77 @@ namespace AibisDream
|
||||
yield return SpriteShowcase.Instance.ShowObj(picName, duration);
|
||||
}
|
||||
|
||||
[YarnCommand("show_sprite_motion")]
|
||||
public static IEnumerator ShowSpriteMotion(string picName, string motionProfile, float duration = 0.35f)
|
||||
{
|
||||
var showcase = SpriteShowcase.Instance;
|
||||
if (showcase == null) yield break;
|
||||
yield return showcase.ShowObjWithMotion(picName, motionProfile, duration);
|
||||
}
|
||||
|
||||
[YarnCommand("sprite_motion")]
|
||||
public static IEnumerator SpriteMotion(string motionProfile, float leadDuration = 0.18f)
|
||||
{
|
||||
var showcase = SpriteShowcase.Instance;
|
||||
if (showcase == null) yield break;
|
||||
|
||||
showcase.PlayCurrentMotion(motionProfile);
|
||||
if (leadDuration > 0f)
|
||||
{
|
||||
yield return new WaitForSeconds(leadDuration);
|
||||
}
|
||||
}
|
||||
|
||||
[YarnCommand("kite_show")]
|
||||
public static IEnumerator KiteShow(float height = 0, int wind = 0, float duration = 0.35f)
|
||||
{
|
||||
var showcase = SpriteShowcase.Instance;
|
||||
if (showcase == null) yield break;
|
||||
yield return showcase.ShowKite(height, wind, duration);
|
||||
}
|
||||
|
||||
[YarnCommand("kite_state")]
|
||||
public static IEnumerator KiteState(float height, int wind, float duration = 0.9f, float leadDuration = 0.35f)
|
||||
{
|
||||
var showcase = SpriteShowcase.Instance;
|
||||
if (showcase == null) yield break;
|
||||
|
||||
showcase.SetKiteState(height, wind, duration);
|
||||
if (leadDuration > 0f)
|
||||
{
|
||||
yield return new WaitForSeconds(Mathf.Min(leadDuration, duration));
|
||||
}
|
||||
}
|
||||
|
||||
[YarnCommand("kite_wind")]
|
||||
public static void KiteWind(int wind, float turbulence = -1f)
|
||||
{
|
||||
var showcase = SpriteShowcase.Instance;
|
||||
if (showcase == null) return;
|
||||
showcase.SetKiteWind(wind, turbulence);
|
||||
}
|
||||
|
||||
[YarnCommand("kite_accent")]
|
||||
public static IEnumerator KiteAccent(string profile, float leadDuration = 0.18f)
|
||||
{
|
||||
var showcase = SpriteShowcase.Instance;
|
||||
if (showcase == null) yield break;
|
||||
|
||||
showcase.PlayKiteAccent(profile);
|
||||
if (leadDuration > 0f)
|
||||
{
|
||||
yield return new WaitForSeconds(leadDuration);
|
||||
}
|
||||
}
|
||||
|
||||
[YarnCommand("kite_hide")]
|
||||
public static IEnumerator KiteHide(float duration = 1)
|
||||
{
|
||||
var showcase = SpriteShowcase.Instance;
|
||||
if (showcase == null) yield break;
|
||||
yield return showcase.HideKite(duration);
|
||||
}
|
||||
|
||||
[YarnCommand("hide_sprite")]
|
||||
public static IEnumerator HideSprite(float duration = 1)
|
||||
{
|
||||
@@ -209,4 +280,4 @@ namespace AibisDream
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,17 +13,30 @@ namespace AibisDream
|
||||
{
|
||||
/// <summary>Addressable Key 模板,与 Scene_Dream 中梦境图 Address 一致。</summary>
|
||||
private const string DreamSpritePath = "Sprite/梦境/{0}.png";
|
||||
private const string KiteBaseSuffix = "_底图";
|
||||
private const string KiteMotionSuffix = "_风筝层";
|
||||
|
||||
[SerializeField] private SpriteRenderer _spriteRenderer;
|
||||
[SerializeField] private SpriteRenderer _backgroundSpriteRenderer;
|
||||
[SerializeField] private SpriteRenderer _largeSpriteRenderer;
|
||||
|
||||
private SpriteRenderer _smallMotionRenderer;
|
||||
private SpriteMask _smallMotionMask;
|
||||
private DG.Tweening.Sequence _smallMotionSequence;
|
||||
private Vector3 _smallBaseLocalPosition;
|
||||
private Quaternion _smallBaseLocalRotation;
|
||||
private Vector3 _smallBaseLocalScale;
|
||||
private Vector3 _smallMotionBaseOffset;
|
||||
private string _currentSmallPicName;
|
||||
|
||||
// 通过 activeSelf 判断当前状态
|
||||
private bool IsSmallShowing => _spriteRenderer.gameObject.activeSelf;
|
||||
private bool IsLargeShowing => _largeSpriteRenderer != null && _largeSpriteRenderer.gameObject.activeSelf;
|
||||
|
||||
public override void OnSingletonInit()
|
||||
{
|
||||
CaptureSmallBaseTransform();
|
||||
|
||||
// 初始状态:隐藏
|
||||
_spriteRenderer.gameObject.SetActive(false);
|
||||
_spriteRenderer.SetAlpha(0);
|
||||
@@ -36,6 +49,16 @@ namespace AibisDream
|
||||
}
|
||||
}
|
||||
|
||||
private void CaptureSmallBaseTransform()
|
||||
{
|
||||
if (_spriteRenderer == null) return;
|
||||
|
||||
var tr = _spriteRenderer.transform;
|
||||
_smallBaseLocalPosition = tr.localPosition;
|
||||
_smallBaseLocalRotation = tr.localRotation;
|
||||
_smallBaseLocalScale = tr.localScale;
|
||||
}
|
||||
|
||||
private static string NormalizeDreamPicName(string picName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(picName)) return picName;
|
||||
@@ -55,6 +78,276 @@ namespace AibisDream
|
||||
Debug.LogError($"[SpriteShowcase] Failed to load sprite: {key}");
|
||||
}
|
||||
|
||||
private void EnsureSmallMotionRenderer()
|
||||
{
|
||||
if (_smallMotionRenderer != null || _spriteRenderer == null) return;
|
||||
|
||||
var motionObject = new GameObject($"{_spriteRenderer.name} Motion");
|
||||
motionObject.transform.SetParent(_spriteRenderer.transform.parent);
|
||||
_smallMotionRenderer = motionObject.AddComponent<SpriteRenderer>();
|
||||
CopySmallRendererSettings(_smallMotionRenderer, 1, SpriteMaskInteraction.VisibleInsideMask);
|
||||
_smallMotionRenderer.gameObject.SetActive(false);
|
||||
_smallMotionRenderer.SetAlpha(0);
|
||||
}
|
||||
|
||||
private void CopySmallRendererSettings(SpriteRenderer target, int sortingOrderOffset, SpriteMaskInteraction maskInteraction)
|
||||
{
|
||||
if (target == null || _spriteRenderer == null) return;
|
||||
|
||||
target.sharedMaterial = _spriteRenderer.sharedMaterial;
|
||||
target.sortingLayerID = _spriteRenderer.sortingLayerID;
|
||||
target.sortingOrder = _spriteRenderer.sortingOrder + sortingOrderOffset;
|
||||
target.drawMode = _spriteRenderer.drawMode;
|
||||
target.size = _spriteRenderer.size;
|
||||
target.flipX = _spriteRenderer.flipX;
|
||||
target.flipY = _spriteRenderer.flipY;
|
||||
target.maskInteraction = maskInteraction;
|
||||
}
|
||||
|
||||
private void EnsureSmallMotionMask()
|
||||
{
|
||||
if (_smallMotionMask != null || _spriteRenderer == null) return;
|
||||
|
||||
var maskObject = new GameObject($"{_spriteRenderer.name} Motion Mask");
|
||||
maskObject.transform.SetParent(_spriteRenderer.transform.parent);
|
||||
_smallMotionMask = maskObject.AddComponent<SpriteMask>();
|
||||
_smallMotionMask.alphaCutoff = 0.01f;
|
||||
_smallMotionMask.isCustomRangeActive = true;
|
||||
_smallMotionMask.enabled = false;
|
||||
}
|
||||
|
||||
private void ConfigureSmallMotionMask()
|
||||
{
|
||||
EnsureSmallMotionMask();
|
||||
if (_smallMotionMask == null) return;
|
||||
|
||||
_smallMotionMask.sprite = _spriteRenderer.sprite;
|
||||
_smallMotionMask.frontSortingLayerID = _spriteRenderer.sortingLayerID;
|
||||
_smallMotionMask.backSortingLayerID = _spriteRenderer.sortingLayerID;
|
||||
_smallMotionMask.frontSortingOrder = _spriteRenderer.sortingOrder + 2;
|
||||
_smallMotionMask.backSortingOrder = _spriteRenderer.sortingOrder;
|
||||
|
||||
var maskTr = _smallMotionMask.transform;
|
||||
maskTr.localPosition = _smallBaseLocalPosition;
|
||||
maskTr.localRotation = _smallBaseLocalRotation;
|
||||
maskTr.localScale = _smallBaseLocalScale;
|
||||
_smallMotionMask.enabled = true;
|
||||
}
|
||||
|
||||
private void KillSmallTweenState()
|
||||
{
|
||||
_smallMotionSequence?.Kill();
|
||||
_smallMotionSequence = null;
|
||||
}
|
||||
|
||||
private void ResetSmallTransform(bool resetMotionLayer = true)
|
||||
{
|
||||
if (_spriteRenderer == null) return;
|
||||
|
||||
var tr = _spriteRenderer.transform;
|
||||
tr.localPosition = _smallBaseLocalPosition;
|
||||
tr.localRotation = _smallBaseLocalRotation;
|
||||
tr.localScale = _smallBaseLocalScale;
|
||||
|
||||
if (!resetMotionLayer || _smallMotionRenderer == null) return;
|
||||
|
||||
var motionTr = _smallMotionRenderer.transform;
|
||||
motionTr.localPosition = _smallBaseLocalPosition + _smallMotionBaseOffset;
|
||||
motionTr.localRotation = _smallBaseLocalRotation;
|
||||
motionTr.localScale = _smallBaseLocalScale;
|
||||
}
|
||||
|
||||
private static string NormalizeMotionProfile(string motionProfile)
|
||||
{
|
||||
return string.IsNullOrEmpty(motionProfile)
|
||||
? string.Empty
|
||||
: motionProfile.Trim().ToLowerInvariant();
|
||||
}
|
||||
|
||||
private Vector3 BaseOffset(float x, float y)
|
||||
{
|
||||
return _smallBaseLocalPosition + _smallMotionBaseOffset + new Vector3(x, y, 0f);
|
||||
}
|
||||
|
||||
private static bool TryGetSplitMotionPicNames(string picName, out string basePicName, out string motionPicName)
|
||||
{
|
||||
var normalized = NormalizeDreamPicName(picName);
|
||||
|
||||
// 风筝图已改由风筝 Rig(ShowKite 等)连续驱动,分层底图+遮罩通路仅保留给轱辘特写
|
||||
if (normalized == "D2S轱辘")
|
||||
{
|
||||
basePicName = $"{normalized}{KiteBaseSuffix}";
|
||||
motionPicName = $"{normalized}{KiteMotionSuffix}";
|
||||
return true;
|
||||
}
|
||||
|
||||
basePicName = picName;
|
||||
motionPicName = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
private void PlaySmallMotion(string motionProfile)
|
||||
{
|
||||
_smallMotionSequence?.Kill();
|
||||
_smallMotionSequence = null;
|
||||
|
||||
var profile = NormalizeMotionProfile(motionProfile);
|
||||
if (string.IsNullOrEmpty(profile) || profile == "none") return;
|
||||
|
||||
var target = _smallMotionRenderer != null && _smallMotionRenderer.gameObject.activeSelf
|
||||
? _smallMotionRenderer
|
||||
: _spriteRenderer;
|
||||
var tr = target.transform;
|
||||
var seq = DOTween.Sequence();
|
||||
|
||||
switch (profile)
|
||||
{
|
||||
// 轱辘:全力拉住——先被拽进受力姿态(只进一次),之后进入拔河式的角力拉锯。
|
||||
// 拉锯循环见 PlayReelHold。
|
||||
case "reel_tension":
|
||||
seq.Append(tr.DOLocalMove(BaseOffset(0.13f, -0.32f), 0.22f).SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -2.8f), 0.22f).SetEase(Ease.OutCubic));
|
||||
seq.OnComplete(() => PlayReelHold(tr));
|
||||
break;
|
||||
|
||||
default:
|
||||
seq.Kill();
|
||||
return;
|
||||
}
|
||||
|
||||
_smallMotionSequence = seq;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 轱辘“拔河角力”常驻循环:一场正在输掉的拔河。
|
||||
/// strain 随回合递增(0→1):节奏越来越快、姿态被拽得越来越深、猛夺越来越频繁;
|
||||
/// 往回挣不再是平滑回弹,而是“向下被拖住→抬回一点→又沉下去→再咬住”的三段拉锯。
|
||||
/// 每回合参数随机,OnComplete 续下一回合;用纵向位移和停顿表达强拉,避免机械抖动。
|
||||
/// </summary>
|
||||
private void PlayReelHold(Transform tr, float strain = 0f)
|
||||
{
|
||||
_smallMotionSequence?.Kill();
|
||||
|
||||
// 姿态整体随 strain 加深;时长随 strain 收紧。旋转只做小角度,避免贴图边缘穿帮。
|
||||
var deepX = strain * 0.06f;
|
||||
var deepY = strain * 0.14f;
|
||||
var speed = Mathf.Lerp(1f, 0.62f, strain);
|
||||
var rotBias = strain * 0.8f;
|
||||
|
||||
var seq = DOTween.Sequence();
|
||||
|
||||
// 对面加力:被一点点拽深
|
||||
var strainDur = UnityEngine.Random.Range(0.35f, 0.6f) * speed;
|
||||
seq.Append(tr.DOLocalMove(
|
||||
BaseOffset(UnityEngine.Random.Range(0.17f, 0.23f) + deepX,
|
||||
UnityEngine.Random.Range(-0.42f, -0.34f) - deepY),
|
||||
strainDur)
|
||||
.SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(
|
||||
new Vector3(0f, 0f, UnityEngine.Random.Range(-3.6f, -2.4f) - rotBias), strainDur)
|
||||
.SetEase(Ease.InOutSine));
|
||||
|
||||
// 猛夺一小截:概率与深度都随 strain 提升;夺完手上发麻——
|
||||
// 不是连续 shake,而是被向下拽住、短暂停顿,再勉强抬回一点。
|
||||
if (UnityEngine.Random.value < 0.55f + strain * 0.35f)
|
||||
{
|
||||
var yankDur = UnityEngine.Random.Range(0.1f, 0.16f) * speed;
|
||||
seq.Append(tr.DOLocalMove(
|
||||
BaseOffset(UnityEngine.Random.Range(0.25f, 0.34f) + deepX,
|
||||
UnityEngine.Random.Range(-0.62f, -0.5f) - deepY),
|
||||
yankDur)
|
||||
.SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(
|
||||
new Vector3(0f, 0f, UnityEngine.Random.Range(-4.8f, -3.4f) - rotBias), yankDur)
|
||||
.SetEase(Ease.OutCubic));
|
||||
seq.AppendInterval(UnityEngine.Random.Range(0.05f, 0.11f) * speed);
|
||||
var biteDur = UnityEngine.Random.Range(0.12f, 0.2f) * speed;
|
||||
seq.Append(tr.DOLocalMove(
|
||||
BaseOffset(UnityEngine.Random.Range(0.19f, 0.27f) + deepX,
|
||||
UnityEngine.Random.Range(-0.48f, -0.4f) - deepY),
|
||||
biteDur)
|
||||
.SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(
|
||||
new Vector3(0f, 0f, UnityEngine.Random.Range(-3.4f, -2.2f) - rotBias), biteDur)
|
||||
.SetEase(Ease.OutCubic));
|
||||
}
|
||||
|
||||
// 往回挣(一):咬牙拉回一点
|
||||
var recoverDur = UnityEngine.Random.Range(0.16f, 0.24f) * speed;
|
||||
seq.Append(tr.DOLocalMove(
|
||||
BaseOffset(UnityEngine.Random.Range(0.12f, 0.16f) + deepX,
|
||||
UnityEngine.Random.Range(-0.32f, -0.26f) - deepY * 0.55f),
|
||||
recoverDur)
|
||||
.SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(
|
||||
new Vector3(0f, 0f, UnityEngine.Random.Range(-2.3f, -1.3f) - rotBias * 0.7f), recoverDur)
|
||||
.SetEase(Ease.OutCubic));
|
||||
// 滑走半截:手上又被抽走一段
|
||||
var slipDur = UnityEngine.Random.Range(0.09f, 0.15f) * speed;
|
||||
seq.Append(tr.DOLocalMove(
|
||||
BaseOffset(UnityEngine.Random.Range(0.2f, 0.27f) + deepX,
|
||||
UnityEngine.Random.Range(-0.5f, -0.4f) - deepY),
|
||||
slipDur)
|
||||
.SetEase(Ease.OutQuad));
|
||||
seq.Join(tr.DOLocalRotate(
|
||||
new Vector3(0f, 0f, UnityEngine.Random.Range(-4.1f, -2.8f) - rotBias), slipDur)
|
||||
.SetEase(Ease.OutQuad));
|
||||
// 四成回合再快速地向下沉半口气又咬住,上下拉锯的小碎步。
|
||||
if (UnityEngine.Random.value < 0.45f)
|
||||
{
|
||||
var dipDur = UnityEngine.Random.Range(0.08f, 0.12f) * speed;
|
||||
seq.Append(tr.DOLocalMove(
|
||||
BaseOffset(UnityEngine.Random.Range(0.21f, 0.28f) + deepX,
|
||||
UnityEngine.Random.Range(-0.56f, -0.47f) - deepY),
|
||||
dipDur)
|
||||
.SetEase(Ease.OutQuad));
|
||||
seq.Join(tr.DOLocalRotate(
|
||||
new Vector3(0f, 0f, UnityEngine.Random.Range(-4.4f, -3f) - rotBias), dipDur)
|
||||
.SetEase(Ease.OutQuad));
|
||||
var braceDur = UnityEngine.Random.Range(0.11f, 0.16f) * speed;
|
||||
seq.Append(tr.DOLocalMove(
|
||||
BaseOffset(UnityEngine.Random.Range(0.16f, 0.22f) + deepX,
|
||||
UnityEngine.Random.Range(-0.4f, -0.33f) - deepY),
|
||||
braceDur)
|
||||
.SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(
|
||||
new Vector3(0f, 0f, UnityEngine.Random.Range(-3f, -1.8f) - rotBias), braceDur)
|
||||
.SetEase(Ease.OutCubic));
|
||||
}
|
||||
// 往回挣(二):再咬住,但回不到最初的姿态
|
||||
var pullDur = UnityEngine.Random.Range(0.25f, 0.38f) * speed;
|
||||
seq.Append(tr.DOLocalMove(
|
||||
BaseOffset(UnityEngine.Random.Range(0.13f, 0.18f) + deepX,
|
||||
UnityEngine.Random.Range(-0.35f, -0.28f) - deepY * 0.75f),
|
||||
pullDur)
|
||||
.SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(
|
||||
new Vector3(0f, 0f, UnityEngine.Random.Range(-2.8f, -1.6f) - rotBias), pullDur)
|
||||
.SetEase(Ease.InOutSine));
|
||||
// 偶尔结尾再沉一下,像手腕被拖住,不做高频震动。
|
||||
if (UnityEngine.Random.value < 0.35f)
|
||||
{
|
||||
var sagDur = UnityEngine.Random.Range(0.12f, 0.2f) * speed;
|
||||
seq.Append(tr.DOLocalMove(
|
||||
BaseOffset(UnityEngine.Random.Range(0.18f, 0.24f) + deepX,
|
||||
UnityEngine.Random.Range(-0.46f, -0.38f) - deepY),
|
||||
sagDur)
|
||||
.SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(
|
||||
new Vector3(0f, 0f, UnityEngine.Random.Range(-3.5f, -2.2f) - rotBias), sagDur)
|
||||
.SetEase(Ease.InOutSine));
|
||||
}
|
||||
|
||||
seq.OnComplete(() => PlayReelHold(tr, Mathf.Min(1f, strain + 0.22f)));
|
||||
_smallMotionSequence = seq;
|
||||
}
|
||||
|
||||
public void PlayCurrentMotion(string motionProfile)
|
||||
{
|
||||
if (_spriteRenderer == null || !IsSmallShowing) return;
|
||||
PlaySmallMotion(motionProfile);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示物体(小图)
|
||||
/// </summary>
|
||||
@@ -69,13 +362,94 @@ namespace AibisDream
|
||||
yield return HideLargeObj(duration);
|
||||
}
|
||||
|
||||
// 互斥:风筝 Rig 正在显示时先隐藏
|
||||
if (IsKiteShowing)
|
||||
{
|
||||
yield return HideKite(Mathf.Min(duration, 0.25f));
|
||||
}
|
||||
|
||||
KillSmallTweenState();
|
||||
ResetSmallTransform();
|
||||
|
||||
if (_smallMotionRenderer != null)
|
||||
{
|
||||
_smallMotionRenderer.gameObject.SetActive(false);
|
||||
_smallMotionRenderer.SetAlpha(0);
|
||||
_smallMotionRenderer.maskInteraction = SpriteMaskInteraction.None;
|
||||
}
|
||||
|
||||
if (_smallMotionMask != null)
|
||||
{
|
||||
_smallMotionMask.enabled = false;
|
||||
}
|
||||
|
||||
_spriteRenderer.gameObject.SetActive(true);
|
||||
|
||||
yield return LoadDreamSpriteInto(_spriteRenderer, picName);
|
||||
_currentSmallPicName = NormalizeDreamPicName(picName);
|
||||
|
||||
yield return _spriteRenderer.DOFade(1, duration).WaitForCompletion();
|
||||
}
|
||||
|
||||
public IEnumerator ShowObjWithMotion(string picName, string motionProfile, float duration)
|
||||
{
|
||||
// 互斥:如果大图正在显示,先隐藏
|
||||
if (IsLargeShowing)
|
||||
{
|
||||
yield return HideLargeObj(duration);
|
||||
}
|
||||
|
||||
// 互斥:风筝 Rig 正在显示时先隐藏
|
||||
if (IsKiteShowing)
|
||||
{
|
||||
yield return HideKite(Mathf.Min(duration, 0.25f));
|
||||
}
|
||||
|
||||
var normalizedName = NormalizeDreamPicName(picName);
|
||||
var useSplitMotion = TryGetSplitMotionPicNames(picName, out var basePicName, out var motionPicName);
|
||||
var isSamePic = string.Equals(_currentSmallPicName, normalizedName, StringComparison.OrdinalIgnoreCase);
|
||||
_smallMotionBaseOffset = normalizedName == "D2S轱辘" ? new Vector3(0f, -0.32f, 0f) : Vector3.zero;
|
||||
|
||||
KillSmallTweenState();
|
||||
|
||||
ResetSmallTransform(resetMotionLayer: !isSamePic);
|
||||
_spriteRenderer.gameObject.SetActive(true);
|
||||
|
||||
if (!isSamePic || _spriteRenderer.sprite == null)
|
||||
{
|
||||
yield return LoadDreamSpriteInto(_spriteRenderer, useSplitMotion ? basePicName : picName);
|
||||
_currentSmallPicName = normalizedName;
|
||||
}
|
||||
_spriteRenderer.SetAlpha(1f);
|
||||
|
||||
if (useSplitMotion)
|
||||
{
|
||||
EnsureSmallMotionRenderer();
|
||||
_smallMotionRenderer.gameObject.SetActive(true);
|
||||
CopySmallRendererSettings(_smallMotionRenderer, 1, SpriteMaskInteraction.VisibleInsideMask);
|
||||
ConfigureSmallMotionMask();
|
||||
ResetSmallTransform(resetMotionLayer: !isSamePic);
|
||||
if (!isSamePic || _smallMotionRenderer.sprite == null)
|
||||
{
|
||||
yield return LoadDreamSpriteInto(_smallMotionRenderer, motionPicName);
|
||||
}
|
||||
_smallMotionRenderer.SetAlpha(1f);
|
||||
}
|
||||
else if (_smallMotionRenderer != null)
|
||||
{
|
||||
_smallMotionRenderer.gameObject.SetActive(false);
|
||||
_smallMotionRenderer.SetAlpha(0);
|
||||
_smallMotionRenderer.maskInteraction = SpriteMaskInteraction.None;
|
||||
|
||||
if (_smallMotionMask != null)
|
||||
{
|
||||
_smallMotionMask.enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
PlaySmallMotion(motionProfile);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示大图
|
||||
/// </summary>
|
||||
@@ -84,10 +458,15 @@ namespace AibisDream
|
||||
/// <returns>协程</returns>
|
||||
public IEnumerator ShowLargeObj(string picName, float duration = 1)
|
||||
{
|
||||
// 互斥:如果小图正在显示,先隐藏
|
||||
// 互斥:小图立刻关掉,避免风筝层与底图不同步淡出造成的怪 fade
|
||||
if (IsSmallShowing)
|
||||
{
|
||||
yield return HideObj(duration);
|
||||
yield return HideObj(0f);
|
||||
}
|
||||
|
||||
if (IsKiteShowing)
|
||||
{
|
||||
yield return HideKite(0f);
|
||||
}
|
||||
|
||||
if (_largeSpriteRenderer == null) yield break;
|
||||
@@ -117,11 +496,47 @@ namespace AibisDream
|
||||
/// <returns>协程</returns>
|
||||
public IEnumerator HideObj(bool force, float duration = 1)
|
||||
{
|
||||
// 风筝 Rig 视作小图的一种,hide_sprite 时一并隐藏
|
||||
if (IsKiteShowing)
|
||||
{
|
||||
yield return HideKite(duration);
|
||||
}
|
||||
|
||||
// force=false 时检查状态,未显示则直接返回
|
||||
if (!force && !IsSmallShowing) yield break;
|
||||
|
||||
yield return _spriteRenderer.DOFade(0, duration).WaitForCompletion();
|
||||
KillSmallTweenState();
|
||||
ResetSmallTransform();
|
||||
|
||||
var motionActive = _smallMotionRenderer != null && _smallMotionRenderer.gameObject.activeSelf;
|
||||
if (duration <= 0f)
|
||||
{
|
||||
_spriteRenderer.SetAlpha(0);
|
||||
if (motionActive)
|
||||
_smallMotionRenderer.SetAlpha(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
var fade = _spriteRenderer.DOFade(0, duration);
|
||||
if (motionActive)
|
||||
_smallMotionRenderer.DOFade(0, duration);
|
||||
yield return fade.WaitForCompletion();
|
||||
}
|
||||
|
||||
_spriteRenderer.gameObject.SetActive(false);
|
||||
_currentSmallPicName = null;
|
||||
|
||||
if (_smallMotionRenderer != null)
|
||||
{
|
||||
_smallMotionRenderer.gameObject.SetActive(false);
|
||||
_smallMotionRenderer.SetAlpha(0);
|
||||
_smallMotionRenderer.maskInteraction = SpriteMaskInteraction.None;
|
||||
}
|
||||
|
||||
if (_smallMotionMask != null)
|
||||
{
|
||||
_smallMotionMask.enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -145,13 +560,463 @@ namespace AibisDream
|
||||
/// <returns>协程</returns>
|
||||
public IEnumerator HideAll(float duration = 1)
|
||||
{
|
||||
if (IsSmallShowing)
|
||||
if (IsSmallShowing || IsKiteShowing)
|
||||
yield return HideObj(duration);
|
||||
|
||||
if (IsLargeShowing)
|
||||
yield return HideLargeObj(duration);
|
||||
}
|
||||
|
||||
#region 风筝 Rig
|
||||
|
||||
// 风筝段落弃用切图(D2S风筝1/2/3),改为单张风筝图 + 三层 Transform 连续驱动:
|
||||
// Kite Rig(高度补间:缩放+位移)→ Sway(常驻风况循环)→ Accent(一次性顿挫 + Renderer)
|
||||
// 三层各持有独立 Tween,互不覆盖。白色底图挂在独立的静态 renderer 上,不随高度缩放。
|
||||
private const string KiteSpritePicName = "D2S风筝1_风筝层";
|
||||
private const string KiteBasePicName = "D2S风筝1_底图";
|
||||
private const float KiteMaxHeight = 13f;
|
||||
/// <summary>每升高 1 点高度,缩放乘以该系数。</summary>
|
||||
private const float KiteScalePerHeight = 0.84f;
|
||||
/// <summary>缩放下限:最远处的风筝也不小于该比例。</summary>
|
||||
private const float KiteMinScaleFactor = 0.12f;
|
||||
/// <summary>高度最大时风筝相对基准位置的漂移量(向上飘 + 少量横移)。</summary>
|
||||
private static readonly Vector3 KiteTopDrift = new Vector3(0.5f, 1.2f, 0f);
|
||||
|
||||
private Transform _kiteRootPivot;
|
||||
private Transform _kiteSwayPivot;
|
||||
private SpriteRenderer _kiteRenderer;
|
||||
private SpriteRenderer _kiteBaseRenderer;
|
||||
private SpriteMask _kiteMask;
|
||||
private DG.Tweening.Sequence _kiteHeightSequence;
|
||||
private DG.Tweening.Sequence _kiteSwaySequence;
|
||||
private DG.Tweening.Sequence _kiteAccentSequence;
|
||||
private Tween _kiteFadeTween;
|
||||
private float _kiteHeight;
|
||||
/// <summary>当前乱度 0~1,由 kite_wind 显式设定;kite_state 沿用上次的值(粘滞)。</summary>
|
||||
private float _kiteTurbulence;
|
||||
private bool _kiteSpriteLoaded;
|
||||
private bool _kiteBaseSpriteLoaded;
|
||||
|
||||
private bool IsKiteShowing => _kiteRootPivot != null && _kiteRootPivot.gameObject.activeSelf;
|
||||
|
||||
private void EnsureKiteRig()
|
||||
{
|
||||
if (_kiteRootPivot != null || _spriteRenderer == null) return;
|
||||
|
||||
var root = new GameObject("Kite Rig");
|
||||
root.transform.SetParent(_spriteRenderer.transform.parent);
|
||||
root.transform.localPosition = _smallBaseLocalPosition;
|
||||
root.transform.localRotation = _smallBaseLocalRotation;
|
||||
root.transform.localScale = _smallBaseLocalScale;
|
||||
|
||||
var sway = new GameObject("Kite Sway");
|
||||
sway.transform.SetParent(root.transform, false);
|
||||
|
||||
var accent = new GameObject("Kite Accent");
|
||||
accent.transform.SetParent(sway.transform, false);
|
||||
|
||||
// 白色底图:独立静态节点,不随高度层缩放
|
||||
var baseObject = new GameObject("Kite Base");
|
||||
baseObject.transform.SetParent(_spriteRenderer.transform.parent);
|
||||
baseObject.transform.localPosition = _smallBaseLocalPosition;
|
||||
baseObject.transform.localRotation = _smallBaseLocalRotation;
|
||||
baseObject.transform.localScale = _smallBaseLocalScale;
|
||||
|
||||
// 遮罩:把风筝层限制在底图(天空)范围内,不会飘出画框
|
||||
var maskObject = new GameObject("Kite Mask");
|
||||
maskObject.transform.SetParent(_spriteRenderer.transform.parent);
|
||||
maskObject.transform.localPosition = _smallBaseLocalPosition;
|
||||
maskObject.transform.localRotation = _smallBaseLocalRotation;
|
||||
maskObject.transform.localScale = _smallBaseLocalScale;
|
||||
|
||||
_kiteRootPivot = root.transform;
|
||||
_kiteSwayPivot = sway.transform;
|
||||
_kiteRenderer = accent.AddComponent<SpriteRenderer>();
|
||||
CopySmallRendererSettings(_kiteRenderer, 1, SpriteMaskInteraction.VisibleInsideMask);
|
||||
_kiteBaseRenderer = baseObject.AddComponent<SpriteRenderer>();
|
||||
CopySmallRendererSettings(_kiteBaseRenderer, 0, SpriteMaskInteraction.None);
|
||||
_kiteMask = maskObject.AddComponent<SpriteMask>();
|
||||
_kiteMask.alphaCutoff = 0.01f;
|
||||
_kiteMask.isCustomRangeActive = true;
|
||||
_kiteMask.enabled = false;
|
||||
|
||||
root.SetActive(false);
|
||||
baseObject.SetActive(false);
|
||||
_kiteRenderer.SetAlpha(0);
|
||||
_kiteBaseRenderer.SetAlpha(0);
|
||||
}
|
||||
|
||||
private static float KiteScaleFactor(float height) =>
|
||||
Mathf.Max(Mathf.Pow(KiteScalePerHeight, height), KiteMinScaleFactor);
|
||||
|
||||
private Vector3 KitePosition(float height) =>
|
||||
_smallBaseLocalPosition + KiteTopDrift * (height / KiteMaxHeight);
|
||||
|
||||
private Vector3 KiteScale(float height) => _smallBaseLocalScale * KiteScaleFactor(height);
|
||||
|
||||
/// <summary>极高处降低不透明度,配合“几乎看不见”的文本。</summary>
|
||||
private static float KiteAlpha(float height) =>
|
||||
height <= 8f ? 1f : Mathf.Lerp(1f, 0.75f, (height - 8f) / (KiteMaxHeight - 8f));
|
||||
|
||||
private void KillKiteTweens()
|
||||
{
|
||||
_kiteHeightSequence?.Kill();
|
||||
_kiteHeightSequence = null;
|
||||
_kiteSwaySequence?.Kill();
|
||||
_kiteSwaySequence = null;
|
||||
_kiteAccentSequence?.Kill();
|
||||
_kiteAccentSequence = null;
|
||||
_kiteFadeTween?.Kill();
|
||||
_kiteFadeTween = null;
|
||||
}
|
||||
|
||||
private void ApplyKiteStateImmediate(float height)
|
||||
{
|
||||
_kiteRootPivot.localPosition = KitePosition(height);
|
||||
_kiteRootPivot.localRotation = _smallBaseLocalRotation;
|
||||
_kiteRootPivot.localScale = KiteScale(height);
|
||||
_kiteSwayPivot.localPosition = Vector3.zero;
|
||||
_kiteSwayPivot.localRotation = Quaternion.identity;
|
||||
_kiteRenderer.transform.localPosition = Vector3.zero;
|
||||
_kiteRenderer.transform.localRotation = Quaternion.identity;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示风筝 Rig。已显示时等价于 <see cref="SetKiteState"/>(幂等)。
|
||||
/// </summary>
|
||||
/// <param name="height">风筝高度(对应 Yarn 变量 $h)</param>
|
||||
/// <param name="wind">风向(对应 Yarn 变量 $wind:1 强 / 0 无 / -1 弱)</param>
|
||||
/// <param name="duration">保留参数以兼容既有调用;出现不再淡入,仅用于互斥隐藏其它图</param>
|
||||
public IEnumerator ShowKite(float height, int wind, float duration = 0.35f)
|
||||
{
|
||||
if (IsLargeShowing)
|
||||
{
|
||||
yield return HideLargeObj(duration);
|
||||
}
|
||||
|
||||
if (IsSmallShowing)
|
||||
{
|
||||
yield return HideObj(Mathf.Min(duration, 0.25f));
|
||||
}
|
||||
|
||||
EnsureKiteRig();
|
||||
if (_kiteRenderer == null) yield break;
|
||||
|
||||
height = Mathf.Clamp(height, 0f, KiteMaxHeight);
|
||||
|
||||
if (IsKiteShowing)
|
||||
{
|
||||
SetKiteState(height, wind, duration);
|
||||
yield break;
|
||||
}
|
||||
|
||||
KillKiteTweens();
|
||||
ApplyKiteStateImmediate(height);
|
||||
_kiteHeight = height;
|
||||
_kiteRootPivot.gameObject.SetActive(true);
|
||||
_kiteBaseRenderer.gameObject.SetActive(true);
|
||||
|
||||
if (!_kiteSpriteLoaded)
|
||||
{
|
||||
yield return LoadDreamSpriteInto(_kiteRenderer, KiteSpritePicName);
|
||||
_kiteSpriteLoaded = _kiteRenderer.sprite != null;
|
||||
}
|
||||
|
||||
if (!_kiteBaseSpriteLoaded)
|
||||
{
|
||||
yield return LoadDreamSpriteInto(_kiteBaseRenderer, KiteBasePicName);
|
||||
_kiteBaseSpriteLoaded = _kiteBaseRenderer.sprite != null;
|
||||
}
|
||||
|
||||
if (_kiteBaseSpriteLoaded)
|
||||
{
|
||||
_kiteMask.sprite = _kiteBaseRenderer.sprite;
|
||||
_kiteMask.frontSortingLayerID = _kiteRenderer.sortingLayerID;
|
||||
_kiteMask.backSortingLayerID = _kiteRenderer.sortingLayerID;
|
||||
_kiteMask.frontSortingOrder = _spriteRenderer.sortingOrder + 2;
|
||||
_kiteMask.backSortingOrder = _spriteRenderer.sortingOrder;
|
||||
_kiteMask.enabled = true;
|
||||
}
|
||||
|
||||
_kiteTurbulence = 0f;
|
||||
PlayKiteSway(wind);
|
||||
// 不做淡入:背景是硬切的,风筝单独 fade 反而突兀,直接以目标透明度出现
|
||||
_kiteBaseRenderer.SetAlpha(1f);
|
||||
_kiteRenderer.SetAlpha(KiteAlpha(height));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 高度补间(每次选择的主反馈)+ 切换风况循环。
|
||||
/// </summary>
|
||||
public void SetKiteState(float height, int wind, float duration = 0.9f)
|
||||
{
|
||||
if (!IsKiteShowing) return;
|
||||
|
||||
height = Mathf.Clamp(height, 0f, KiteMaxHeight);
|
||||
_kiteHeight = height;
|
||||
|
||||
_kiteHeightSequence?.Kill();
|
||||
var seq = DOTween.Sequence();
|
||||
seq.Append(_kiteRootPivot.DOLocalMove(KitePosition(height), duration).SetEase(Ease.InOutSine));
|
||||
seq.Join(_kiteRootPivot.DOScale(KiteScale(height), duration).SetEase(Ease.InOutSine));
|
||||
_kiteHeightSequence = seq;
|
||||
|
||||
_kiteFadeTween?.Kill();
|
||||
_kiteFadeTween = _kiteRenderer.DOFade(KiteAlpha(height), duration);
|
||||
|
||||
PlayKiteSway(wind);
|
||||
}
|
||||
|
||||
/// <summary>仅切换风况循环(选择前 telegraph 风向)。</summary>
|
||||
/// <param name="wind">风向:1 强 / 0 无 / -1 弱</param>
|
||||
/// <param name="turbulence">乱度 0~1;负数或省略表示平稳。设定后粘滞,kite_state 沿用。</param>
|
||||
public void SetKiteWind(int wind, float turbulence = -1f)
|
||||
{
|
||||
if (!IsKiteShowing) return;
|
||||
_kiteTurbulence = turbulence >= 0f ? Mathf.Clamp01(turbulence) : 0f;
|
||||
PlayKiteSway(wind);
|
||||
}
|
||||
|
||||
/// <summary>屏幕可读性补偿:高度层缩小时适度放大局部位移(开方衰减),避免远处几乎不动。</summary>
|
||||
private float KiteSwayComp() =>
|
||||
Mathf.Clamp(1f / Mathf.Sqrt(KiteScaleFactor(_kiteHeight)), 1f, 3f);
|
||||
|
||||
/// <summary>
|
||||
/// 常驻风况循环。位移在高度层的子空间里会随缩放变小,用 comp 做部分补偿保证远处仍有可读的移动。
|
||||
/// 平稳(乱度 0):沿 CatmullRom 曲线大而缓地漫游,绝不抖。
|
||||
/// 乱流(乱度 >0):转交 <see cref="PlayKiteGust"/>,每一阵的方向、力度、间隔都随机。
|
||||
/// </summary>
|
||||
private void PlayKiteSway(int wind)
|
||||
{
|
||||
_kiteSwaySequence?.Kill();
|
||||
_kiteSwaySequence = null;
|
||||
|
||||
if (wind > 0 && _kiteTurbulence > 0.01f)
|
||||
{
|
||||
PlayKiteGust();
|
||||
return;
|
||||
}
|
||||
|
||||
var tr = _kiteSwayPivot;
|
||||
var comp = KiteSwayComp();
|
||||
// 幅度随高度补偿放大后,周期也同步拉长:漂移更明显,但速度不变快,保持轻松
|
||||
var drift = 1f + (comp - 1f) * 0.4f;
|
||||
var seq = DOTween.Sequence();
|
||||
|
||||
if (wind > 0)
|
||||
{
|
||||
// 稳定的风:顶着风侧倾,沿弧线缓慢巡游(位移为主,平稳无抖)
|
||||
var path = new[]
|
||||
{
|
||||
new Vector3(0.26f, 0.15f, 0f) * comp,
|
||||
new Vector3(0.46f, 0.05f, 0f) * comp,
|
||||
new Vector3(0.33f, 0.24f, 0f) * comp,
|
||||
new Vector3(0.11f, 0.11f, 0f) * comp,
|
||||
};
|
||||
var dur = 9.2f * drift;
|
||||
seq.Append(tr.DOLocalPath(path, dur, PathType.CatmullRom).SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -7.5f), dur / 4f).SetEase(Ease.InOutSine)
|
||||
.SetLoops(4, LoopType.Yoyo));
|
||||
}
|
||||
else if (wind == 0)
|
||||
{
|
||||
// 平稳无风:自由自在地沿曲线漫游,幅度加大、节奏放缓
|
||||
var path = new[]
|
||||
{
|
||||
new Vector3(0.3f, 0.16f, 0f) * comp,
|
||||
new Vector3(0.08f, 0.36f, 0f) * comp,
|
||||
new Vector3(-0.28f, 0.24f, 0f) * comp,
|
||||
new Vector3(-0.38f, 0.03f, 0f) * comp,
|
||||
};
|
||||
var dur = 12f * drift;
|
||||
seq.Append(tr.DOLocalPath(path, dur, PathType.CatmullRom).SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, 4f), dur / 4f).SetEase(Ease.InOutSine)
|
||||
.SetLoops(4, LoopType.Yoyo));
|
||||
}
|
||||
else
|
||||
{
|
||||
// 风弱:沿弧线缓缓向下飘
|
||||
var path = new[]
|
||||
{
|
||||
new Vector3(0.12f, -0.14f, 0f) * comp,
|
||||
new Vector3(0.03f, -0.28f, 0f) * comp,
|
||||
new Vector3(-0.17f, -0.21f, 0f) * comp,
|
||||
};
|
||||
var dur = 7.8f * drift;
|
||||
seq.Append(tr.DOLocalPath(path, dur, PathType.CatmullRom).SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, 3f), dur / 3f).SetEase(Ease.InOutSine)
|
||||
.SetLoops(3, LoopType.Yoyo));
|
||||
}
|
||||
|
||||
seq.SetLoops(-1, LoopType.Yoyo);
|
||||
_kiteSwaySequence = seq;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单次阵风,播完通过 OnComplete 用一组新的随机参数接下一阵——节奏永不重复。
|
||||
/// 猛拽段 X 快、Y 慢半拍(不同时长+缓动),走出弧线而不是直线。
|
||||
/// 乱度越高越狂:间隔与荡回时间大幅压缩、拽得更快更斜,
|
||||
/// 甩过头弹回之外,还有概率来不及回稳就被反向再抽一鞭。
|
||||
/// </summary>
|
||||
private void PlayKiteGust()
|
||||
{
|
||||
if (!IsKiteShowing) return;
|
||||
|
||||
_kiteSwaySequence?.Kill();
|
||||
|
||||
var tr = _kiteSwayPivot;
|
||||
var storm = _kiteTurbulence;
|
||||
var amp = KiteSwayComp() * (1f + storm * 1.15f);
|
||||
// 高乱度整体提速:猛拽更快、几乎没有喘息
|
||||
var frantic = Mathf.Lerp(1f, 0.7f, storm);
|
||||
|
||||
// 阵风方向:多数顺着主风向,偶尔反向兜一下;上下随机
|
||||
var side = UnityEngine.Random.value < 0.72f ? 1f : -1f;
|
||||
var jerk = new Vector3(
|
||||
UnityEngine.Random.Range(0.34f, 0.58f) * side,
|
||||
UnityEngine.Random.Range(-0.1f, 0.3f),
|
||||
0f) * amp;
|
||||
var jerkDur = UnityEngine.Random.Range(0.14f, 0.26f) * frantic;
|
||||
var rot = (14f + storm * 18f) * UnityEngine.Random.Range(0.7f, 1.15f) * -side;
|
||||
var settle = jerk * UnityEngine.Random.Range(0.15f, 0.4f);
|
||||
var settleDur = UnityEngine.Random.Range(0.7f, 1.2f) * Mathf.Lerp(1f, 0.45f, storm);
|
||||
var rest = Mathf.Lerp(
|
||||
UnityEngine.Random.Range(0.35f, 0.75f),
|
||||
UnityEngine.Random.Range(0.02f, 0.1f),
|
||||
storm);
|
||||
|
||||
var seq = DOTween.Sequence();
|
||||
seq.AppendInterval(rest);
|
||||
// 猛地被拽走:X 快 Y 慢,轨迹成弧
|
||||
seq.Append(tr.DOLocalMoveX(jerk.x, jerkDur).SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalMoveY(jerk.y, jerkDur * UnityEngine.Random.Range(1.4f, 1.9f)).SetEase(Ease.OutSine));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, rot), jerkDur * 1.2f).SetEase(Ease.OutCubic));
|
||||
// 失控:甩过头再弹回来一下
|
||||
if (storm > 0.7f && UnityEngine.Random.value < 0.6f)
|
||||
{
|
||||
seq.Append(tr.DOLocalRotate(new Vector3(0f, 0f, -rot * 0.65f), 0.22f).SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalMoveX(jerk.x * 0.7f, 0.22f).SetEase(Ease.InOutSine));
|
||||
}
|
||||
// 更失控:来不及回稳,就被反方向再抽一鞭
|
||||
if (storm > 0.6f && UnityEngine.Random.value < 0.5f)
|
||||
{
|
||||
var whipDur = UnityEngine.Random.Range(0.12f, 0.2f);
|
||||
seq.Append(tr.DOLocalMoveX(-jerk.x * UnityEngine.Random.Range(0.5f, 0.9f), whipDur)
|
||||
.SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalMoveY(UnityEngine.Random.Range(-0.16f, 0.2f) * amp, whipDur * 1.5f)
|
||||
.SetEase(Ease.OutSine));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -rot * UnityEngine.Random.Range(0.7f, 1.1f)), whipDur * 1.3f)
|
||||
.SetEase(Ease.OutCubic));
|
||||
}
|
||||
// 荡回来(X/Y 不同步 → 回程也是弧线;高乱度下这一步也短促)
|
||||
seq.Append(tr.DOLocalMoveX(settle.x, settleDur).SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalMoveY(settle.y, settleDur * UnityEngine.Random.Range(0.7f, 0.95f)).SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, rot * UnityEngine.Random.Range(-0.3f, 0.15f)), settleDur)
|
||||
.SetEase(Ease.InOutSine));
|
||||
seq.OnComplete(PlayKiteGust);
|
||||
_kiteSwaySequence = seq;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 一次性顿挫动效,叠加在 Accent 层上,结束回到原位,不打断高度/风况补间。
|
||||
/// 支持:lift(上冲回落)/ sink(下坠沉降)/ taut(前扯抖动)/ drop(猛地下坠)/ flutter(原地挣扎扑腾)
|
||||
/// / wrench(侧面兜住猛甩,最强档)。
|
||||
/// </summary>
|
||||
public void PlayKiteAccent(string profile)
|
||||
{
|
||||
if (!IsKiteShowing) return;
|
||||
|
||||
_kiteAccentSequence?.Kill();
|
||||
_kiteAccentSequence = null;
|
||||
|
||||
var tr = _kiteRenderer.transform;
|
||||
// 位移在高度层的子空间里,随缩放自动变小,无需额外乘缩放系数
|
||||
var seq = DOTween.Sequence();
|
||||
|
||||
switch (NormalizeMotionProfile(profile))
|
||||
{
|
||||
case "lift":
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.14f, 0.3f, 0f), 0.35f).SetEase(Ease.OutQuad));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -6f), 0.35f).SetEase(Ease.OutQuad));
|
||||
break;
|
||||
|
||||
case "sink":
|
||||
seq.Append(tr.DOLocalMove(new Vector3(-0.06f, -0.28f, 0f), 0.4f).SetEase(Ease.OutSine));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, 5f), 0.4f).SetEase(Ease.OutSine));
|
||||
break;
|
||||
|
||||
// 绷紧:猛地被扯直,然后绷住缓慢微颤(小幅慢速拉锯,不是震动)
|
||||
case "taut":
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.3f, 0.06f, 0f), 0.2f).SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -9f), 0.2f).SetEase(Ease.OutCubic));
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.26f, 0.03f, 0f), 0.3f).SetEase(Ease.InOutSine));
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.31f, 0.07f, 0f), 0.26f).SetEase(Ease.InOutSine));
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.27f, 0.04f, 0f), 0.3f).SetEase(Ease.InOutSine));
|
||||
break;
|
||||
|
||||
case "drop":
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.04f, -0.42f, 0f), 0.55f).SetEase(Ease.InQuad));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, 7f), 0.55f).SetEase(Ease.InQuad));
|
||||
break;
|
||||
|
||||
// 侧面兜住(最强档,切轱辘前用):先被回带半拍蓄力,随即狠狠横甩出去,
|
||||
// 挣了一下没挣回来,又被兜得更远、倾得更狠——位移远超其它档位
|
||||
case "wrench":
|
||||
seq.Append(tr.DOLocalMove(new Vector3(-0.11f, 0.04f, 0f), 0.09f).SetEase(Ease.OutQuad));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, 4f), 0.09f).SetEase(Ease.OutQuad));
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.7f, 0.2f, 0f), 0.16f).SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -24f), 0.16f).SetEase(Ease.OutCubic));
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.45f, 0.09f, 0f), 0.2f).SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -10f), 0.2f).SetEase(Ease.InOutSine));
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.92f, 0.3f, 0f), 0.15f).SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -30f), 0.15f).SetEase(Ease.OutCubic));
|
||||
seq.AppendInterval(0.25f);
|
||||
break;
|
||||
|
||||
// 挣扎:左右交替的几下小拉扯,力度递减
|
||||
case "flutter":
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.1f, 0.14f, 0f), 0.2f).SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -5f), 0.2f).SetEase(Ease.OutCubic));
|
||||
seq.Append(tr.DOLocalMove(new Vector3(-0.08f, 0.06f, 0f), 0.26f).SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, 4.5f), 0.26f).SetEase(Ease.InOutSine));
|
||||
seq.Append(tr.DOLocalMove(new Vector3(0.06f, 0.1f, 0f), 0.22f).SetEase(Ease.OutCubic));
|
||||
seq.Join(tr.DOLocalRotate(new Vector3(0f, 0f, -3.5f), 0.22f).SetEase(Ease.OutCubic));
|
||||
break;
|
||||
|
||||
default:
|
||||
seq.Kill();
|
||||
return;
|
||||
}
|
||||
|
||||
// 回到原位,保证可与高度/风况补间叠加
|
||||
seq.Append(tr.DOLocalMove(Vector3.zero, 0.5f).SetEase(Ease.InOutSine));
|
||||
seq.Join(tr.DOLocalRotate(Vector3.zero, 0.5f).SetEase(Ease.InOutSine));
|
||||
_kiteAccentSequence = seq;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏风筝 Rig。与显示一致不做淡出,直接消失(过渡由外层屏幕 fade 承担)。
|
||||
/// </summary>
|
||||
/// <param name="duration">保留参数以兼容既有调用,实际忽略</param>
|
||||
public IEnumerator HideKite(float duration = 1)
|
||||
{
|
||||
if (!IsKiteShowing) yield break;
|
||||
|
||||
KillKiteTweens();
|
||||
|
||||
_kiteRenderer.SetAlpha(0);
|
||||
_kiteBaseRenderer.SetAlpha(0);
|
||||
|
||||
_kiteRootPivot.gameObject.SetActive(false);
|
||||
_kiteBaseRenderer.gameObject.SetActive(false);
|
||||
if (_kiteMask != null)
|
||||
{
|
||||
_kiteMask.enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 淡入(异步协程版本)
|
||||
/// </summary>
|
||||
|
||||
@@ -39,10 +39,13 @@ namespace AibisDream
|
||||
syncToken.SkipTextAnima += () => content.SkipTypewriter();
|
||||
syncToken.OnAdvance += AfterAdvance;
|
||||
|
||||
// TMP ClearMesh 依赖 canvasRenderer;box 未激活时 SetText 会 NRE
|
||||
if (box != null && !box.activeSelf)
|
||||
box.SetActive(true);
|
||||
|
||||
// 播放文字
|
||||
content.TextAnimator.SetText(string.Empty);
|
||||
var lineText = GetOneLineText(syncToken.lineInfo);
|
||||
box.SetActive(true);
|
||||
HandleLayout(lineText);
|
||||
content.ShowText(lineText);
|
||||
syncToken.TextStart();
|
||||
|
||||
@@ -186,9 +186,11 @@ position: 3,80
|
||||
她牵着风筝跑了起来。 #line:039b319
|
||||
<<show_sprite "D2S轱辘">>
|
||||
风筝线骨碌碌地被拉了出去。 #line:0226637
|
||||
girl: 快!放线! #line:018921c
|
||||
girl: 快!放线! #line:018921c
|
||||
<<set $t=0>>
|
||||
->放线 #line:06d26de
|
||||
<<set $h=0>>
|
||||
<<set $fzAccend=false>>
|
||||
->放线 #line:06d26de
|
||||
<<jump 风筝2>>
|
||||
//->不同意 #line:0995f5e
|
||||
<<endif>>
|
||||
@@ -283,45 +285,53 @@ position: 642,-24
|
||||
---
|
||||
|
||||
<<if $t==0>>
|
||||
<i>轱辘在手里猛烈地旋转着,风筝线被一圈圈地放出去。</i> #line:050df8f
|
||||
<i>轱辘在手里猛烈地旋转着,风筝线被一圈圈地放出去。</i> #line:050df8f
|
||||
<<fade_in 1>>
|
||||
<<show_sprite "D2S风筝1">>
|
||||
<<kite_show 1 0 0.35>>
|
||||
<<fade_out 1>>
|
||||
<<wait 0.5>>
|
||||
girl: 飞起来啦。再高些! #line:0f93679
|
||||
me: 风不够大啊…… #line:0aa1f57
|
||||
//girl: 还不够高呢! #line:0c2f2ff
|
||||
me: 该怎么做来着…… #line:0bcfa62
|
||||
girl: 飞起来啦。再高些! #line:0f93679
|
||||
me: 风不够大啊…… #line:0aa1f57
|
||||
//girl: 还不够高呢! #line:0c2f2ff
|
||||
me: 该怎么做来着…… #line:0bcfa62
|
||||
<<elseif $t==1>>
|
||||
<<show_sprite "D2S风筝1">>
|
||||
<i>风筝摇摇晃晃地上升着。</i> #line:0f56000
|
||||
手里的线仿佛有自己的生命,时而紧,时而松。 #line:013729f
|
||||
girl: 再高些! #line:0051916
|
||||
me: 跟着风的感觉…好像是这么说的? #line:099f2be
|
||||
<<kite_state 1.6 0>>
|
||||
<i>风筝摇摇晃晃地上升着。</i> #line:0f56000
|
||||
手里的线仿佛有自己的生命,时而紧,时而松。 #line:013729f
|
||||
girl: 再高些! #line:0051916
|
||||
me: 跟着风的感觉…好像是这么说的? #line:099f2be
|
||||
<<elseif $t==2>>
|
||||
<<show_sprite "D2S风筝1">>
|
||||
//me: 跟着风的感觉! #line:0675827
|
||||
你尝试去感觉风。 #line:064f718
|
||||
风的气息若有若无地吹过你的脸,杂乱无章。 #line:05ea773
|
||||
<<kite_state 2 1>>
|
||||
<<kite_wind 1 0.5>>
|
||||
<<kite_accent taut>>
|
||||
//me: 跟着风的感觉! #line:0675827
|
||||
你尝试去感觉风。 #line:064f718
|
||||
风的气息若有若无地吹过你的脸,杂乱无章。 #line:05ea773
|
||||
<<elseif $t==3>>
|
||||
<<show_sprite "D2S风筝1">>
|
||||
<i>风筝停止了上升,开始往下落。</i> #line:02c49e6
|
||||
girl: 要掉啦! #line:0b3c2c8
|
||||
<<kite_state 0.8 -1 1.2>>
|
||||
<<kite_accent drop>>
|
||||
<i>风筝停止了上升,开始往下落。</i> #line:02c49e6
|
||||
girl: 要掉啦! #line:0b3c2c8
|
||||
<<endif>>
|
||||
|
||||
//==================================================================================
|
||||
//==[回跳内容]展示图片、描述、初始内容
|
||||
//==================================================================================
|
||||
|
||||
->放线 #line:0788a12
|
||||
->收线 #line:0f26666
|
||||
->保持 #line:042d942
|
||||
<<set $t =$t+1>>
|
||||
->放线 #line:0788a12
|
||||
<<kite_accent lift>>
|
||||
->收线 #line:0f26666
|
||||
<<kite_accent sink>>
|
||||
->保持 #line:042d942
|
||||
<<kite_accent flutter>>
|
||||
<<set $t = $t + 1>>
|
||||
<<if $t<5>>
|
||||
<<jump 风筝1>>
|
||||
<<else>>
|
||||
风筝掉到了地上。女孩捡起风筝,排掉上面的尘土。 #line:0918f11
|
||||
差一点就飞起来了!可惜。 #line:05fd02b
|
||||
<<kite_state 0 -1 1>>
|
||||
<<kite_accent drop>>
|
||||
风筝掉到了地上。女孩捡起风筝,排掉上面的尘土。 #line:0918f11
|
||||
差一点就飞起来了!可惜。 #line:05fd02b
|
||||
<<set $gameStage=3>>
|
||||
<<jump 广场>>
|
||||
<<endif>>
|
||||
@@ -336,19 +346,20 @@ cluster: Day2_Plaza
|
||||
position: 642,197
|
||||
---
|
||||
<<if $t==0>>
|
||||
<i>线轱辘在手里猛烈地旋转着,风筝线被一圈圈地放出去。</i> #line:05a3328
|
||||
<i>线轱辘在手里猛烈地旋转着,风筝线被一圈圈地放出去。</i> #line:05a3328
|
||||
<<elseif $t<3>>
|
||||
<<show_sprite "D2S风筝1">>
|
||||
风筝轻轻摇晃着,飘带随风飘动。 #line:0e0465e
|
||||
<<kite_state {$h} {$wind}>>
|
||||
风筝轻轻摇晃着,飘带随风飘动。 #line:0e0465e
|
||||
<<elseif $h<6>>
|
||||
<<show_sprite "D2S风筝2">>
|
||||
风筝飞在高处,像一只自由的小鸟。风筝线垂在空中,轻轻地跳动着。 #line:09505c0
|
||||
<<kite_state {$h} {$wind}>>
|
||||
风筝飞在高处,却不再像刚才那样听话。风筝线一会儿垂下去,一会儿又猛地弹紧。 #line:09505c0
|
||||
<<elseif $h<10>>
|
||||
<<show_sprite "D2S风筝3">>
|
||||
风筝变成了空中的一个小点,几乎看不见了。手上的拉力越来越模糊。 #line:056ef2d
|
||||
<<kite_state {$h} {$wind}>>
|
||||
风筝变成了空中的一个小点,在乱风里忽左忽右。手上的拉力一阵清楚,一阵又像被什么东西吞掉。 #line:056ef2d
|
||||
<<else>>
|
||||
<<show_sprite "D2S风筝3">>
|
||||
轱辘停止了转动。所有的线都被放出去了。你被拽得向前走了两步。 #line:080edb4
|
||||
<<kite_state {$h} {$wind}>>
|
||||
<<kite_accent taut>>
|
||||
线轱辘猛地一顿,所有线都被放出去了。线头像被卡死一样绷住,你来不及收手,被拽得踉跄向前。 #line:080edb4
|
||||
<<endif>>
|
||||
<<if $fzAccend == false>>
|
||||
me: 她怎么说的来着?…风大放线,风小收线……对吧… #line:0fd0200
|
||||
@@ -359,25 +370,29 @@ position: 642,197
|
||||
|
||||
<<if $t==0>>
|
||||
<<set $wind=1>>
|
||||
<<show_sprite "D2S风筝1">>
|
||||
girl: 飞起来啦。再高些! #line:0f8030a
|
||||
girl: 跟着风筝的感觉! #line:09f9f72
|
||||
线轱辘在手里猛烈地旋转着,风筝线被一圈圈地放出去。 #line:0e787b6
|
||||
<<kite_show {$h} {$wind} 0.5>>
|
||||
girl: 飞起来啦。再高些! #line:0f8030a
|
||||
girl: 跟着风筝的感觉! #line:09f9f72
|
||||
线轱辘在手里猛烈地旋转着,风筝线被一圈圈地放出去。 #line:0e787b6
|
||||
<<elseif $t==1>>
|
||||
<<set $wind=-1>>
|
||||
girl: 总算飞起来了! #line:06a5d65
|
||||
风似乎弱了一些,风筝停在了半空中,缓缓地飘落。 #line:01b9a87
|
||||
<<kite_wind {$wind}>>
|
||||
girl: 总算飞起来了! #line:06a5d65
|
||||
风似乎弱了一些,风筝停在了半空中,缓缓地飘落。 #line:01b9a87
|
||||
<<elseif $t==2>>
|
||||
<<set $wind=1>>
|
||||
girl: 飞呀!飞得越高越好! #line:0e6b0ee
|
||||
风筝摇摇晃晃地上升着,你感到风筝线正在收紧。 #line:030fbe4
|
||||
<<kite_wind {$wind}>>
|
||||
girl: 飞呀!飞得越高越好! #line:0e6b0ee
|
||||
风筝摇摇晃晃地上升着,你感到风筝线正在收紧。 #line:030fbe4
|
||||
<<elseif $t==3>>
|
||||
<<set $wind=1>>
|
||||
girl: 你好厉害! #line:004b85e
|
||||
girl: 等我长大,我也要像你一样厉害! #line:008e022
|
||||
一阵风刮过,你感到风筝线正在收紧。 #line:066c8e4
|
||||
<<kite_wind {$wind}>>
|
||||
girl: 你好厉害! #line:004b85e
|
||||
girl: 等我长大,我也要像你一样厉害! #line:008e022
|
||||
一阵风刮过,你感到风筝线正在收紧。 #line:066c8e4
|
||||
<<elseif $t==4>>
|
||||
<<set $wind=0>>
|
||||
<<kite_wind {$wind}>>
|
||||
girl: 你有什么感觉吗? #line:047b70e
|
||||
me: 感觉? #line:0434441
|
||||
girl: 姐姐说,等我把风筝放起来了,我就能知道她的感觉。 #line:07ed92a
|
||||
@@ -386,16 +401,19 @@ position: 642,197
|
||||
风平稳了下来,风筝懒洋洋地在天上晃动。 #line:041ddd8
|
||||
<<elseif $t==5>>
|
||||
<<set $wind=1>>
|
||||
me: 风…好像停了。好像…没有什么规律。 #line:0c86a64
|
||||
girl: 所以她感觉…没有什么规律?搞不懂…… #line:0d5cc4e
|
||||
你努力搜刮着回忆。 #line:0e2133b
|
||||
me: 她…怎么了? #line:094b24d
|
||||
girl: 我不知道。 #line:0992ff4
|
||||
girl: 我只知道…她的病只有那个装进脑袋里的机器能治。 #line:0ad2dc9
|
||||
me: 风…好像停了。好像…没有什么规律。 #line:0c86a64
|
||||
girl: 所以她感觉…没有什么规律?搞不懂…… #line:0d5cc4e
|
||||
你努力搜刮着回忆。 #line:0e2133b
|
||||
me: 她…怎么了? #line:094b24d
|
||||
girl: 我不知道。 #line:0992ff4
|
||||
girl: 我只知道…她的病只有那个装进脑袋里的机器能治。 #line:0ad2dc9
|
||||
<<kite_wind {$wind} 0.25>>
|
||||
<<kite_accent flutter>>
|
||||
风筝开始抖动起来。手上感受到的拉力变大、变乱了。 #line:09afac0
|
||||
<<elseif $t==6>>
|
||||
<<set $wind=-1>>
|
||||
me: 脑袋里的机器? #line:0099492
|
||||
<<kite_wind {$wind}>>
|
||||
me: 脑袋里的机器? #line:0099492
|
||||
girl: 对。但是每次医生装进去,都很快就拿出来了。 #line:08b9df1
|
||||
girl: 医生说…她的思维太杂乱了。 #line:0bc3841
|
||||
me: 排异反应? #line:04ba331
|
||||
@@ -403,17 +421,21 @@ position: 642,197
|
||||
风筝线长长地垂下来,风筝正轻轻地向下飘落。 #line:0345f40
|
||||
<<elseif $t==7>>
|
||||
<<set $wind=1>>
|
||||
me: 我…我也是个医生。 #line:0b31de3
|
||||
<<kite_wind {$wind} 0.38>>
|
||||
me: 我…我也是个医生。 #line:0b31de3
|
||||
girl: 哇!你也太厉害了吧! #line:0a58e7e
|
||||
girl: 等我长大了,也想当一个医生! #line:0494ee2
|
||||
girl: 我要消灭排异反应!到时候,姐姐想去哪就可以去哪了! #line:0a4bcf5
|
||||
<<kite_accent taut>>
|
||||
高处的风胡乱地刮着。风筝线越来越紧。 #line:00317ee
|
||||
<<elseif $t==8>>
|
||||
<<set $wind=1>>
|
||||
<<if $h<6>>
|
||||
<<set $h=6>>
|
||||
<<endif>>
|
||||
girl: 好大的风啊!快把风筝收回来吧。 #line:0551b46
|
||||
<<kite_wind {$wind} 0.5>>
|
||||
<<kite_state {$h} {$wind} 1.2>>
|
||||
girl: 好大的风啊!快把风筝收回来吧。 #line:0551b46
|
||||
me: …… #line:09f8d1a
|
||||
me: 路斯… #line:0b91d55
|
||||
girl: 嗯? #line:00b1fed
|
||||
@@ -426,26 +448,32 @@ position: 642,197
|
||||
<<set $h=10>>
|
||||
<<endif>>
|
||||
<<set $wind=1>>
|
||||
girl: 这么大风…是不是要下雨了呀? #line:0589599
|
||||
<<kite_wind {$wind} 0.65>>
|
||||
<<kite_state {$h} {$wind} 1.2>>
|
||||
girl: 这么大风…是不是要下雨了呀? #line:0589599
|
||||
girl: 我们该把风筝收回来了。不早了。 #line:0d9c578
|
||||
<<kite_accent taut>>
|
||||
风越来越大,线绷得越来越紧。 #line:02cc1b1
|
||||
<<elseif $t==10>>
|
||||
<<set $wind=1>>
|
||||
girl: 小心! #line:0d41d32
|
||||
你被带着向前又走了两步。 #line:0629fc9
|
||||
girl: 该放手了!别要了。 #line:05c16f5
|
||||
风筝线崩成了一条直线。女孩焦躁不安地看看你,又看看高处的风筝。 #line:0f7de8e
|
||||
<<show_sprite "D2S轱辘">>
|
||||
<<kite_wind {$wind} 1>>
|
||||
<<kite_accent wrench>>
|
||||
girl: 小心! #line:0d41d32
|
||||
风又从侧面兜住了风筝。你下意识抱住轱辘,脚步还是被带乱了半拍。 #line:0629fc9
|
||||
girl: 该放手了!别要了。 #line:05c16f5
|
||||
<<kite_accent wrench>>
|
||||
风筝线绷成一条发白的直线。女孩焦躁不安地看看你,又看看高处乱摆的风筝。 #line:0f7de8e
|
||||
<<show_sprite_motion "D2S轱辘" "reel_tension" 0.25>>
|
||||
->放手 #line:0e492d7
|
||||
你下定决心,松开了手。 #line:0707e86
|
||||
轱辘掉在了你的腿上,紧接着是一阵忽如其来的失重感。 #line:056985d
|
||||
->抓紧 #line:0f9b0e7
|
||||
你紧紧地拽着线轱辘,手指关节被压得像是要碎了。 #line:08c160b
|
||||
你把线轱辘往怀里死死压住,顺着拉力后退半步,才勉强没有摔倒。 #line:08c160b
|
||||
girl: 太危险了,让它走吧! #line:000fb69
|
||||
me: 来帮忙呀! #line:0bbc2c2
|
||||
girl: 不!快放手! #line:0cb1ddd
|
||||
女孩想要跳起来去解开轱辘上的线头。 #line:0331894
|
||||
一阵强大的拉力拉得你飞了起来。紧接着是一阵失重感。 #line:060a67f
|
||||
女孩想要跳起来去解开轱辘上的线头,却被绷紧的线逼得停在半路。 #line:0331894
|
||||
下一阵风忽然兜满了风筝。轱辘从你掌心滑脱,紧接着是一阵失重感。 #line:060a67f
|
||||
//你仰面摔在了地上。 #line:0cb513b
|
||||
//me: 飞…走了…… #line:0c4b572
|
||||
//风筝变成了一个小小的小点,在高空中随着风越飞越远。 #line:0ac5fd8
|
||||
@@ -457,55 +485,71 @@ position: 642,197
|
||||
<<jump 上升>>
|
||||
<<endif>>
|
||||
|
||||
->放线 #line:08c3eee
|
||||
->放线 #line:08c3eee
|
||||
<<if $wind==1>>
|
||||
<<set $h=$h+1>>
|
||||
<<set $h = $h + 1>>
|
||||
<<set $fzAccend = true>>
|
||||
风把风筝吹得越来越高,越来越远。 #line:001a06f
|
||||
<<kite_state {$h} {$wind}>>
|
||||
<<kite_accent lift>>
|
||||
风把风筝吹得越来越高,越来越远。 #line:001a06f
|
||||
<<elseif $wind==0>>
|
||||
<<set $fzAccend = true>>
|
||||
风筝在风中轻轻摇晃着。 #line:0b3c4dc
|
||||
<<kite_accent flutter>>
|
||||
风筝在风中轻轻摇晃着。 #line:0b3c4dc
|
||||
<<elseif $wind==-1>>
|
||||
<<set $h=$h-1>>
|
||||
<<set $h = $h - 1>>
|
||||
<<set $fzAccend = false>>
|
||||
风筝摇摇晃晃地下落了一段高度。 #line:0c73bc9
|
||||
<<kite_state {$h} {$wind}>>
|
||||
<<kite_accent sink>>
|
||||
风筝摇摇晃晃地下落了一段高度。 #line:0c73bc9
|
||||
<<endif>>
|
||||
->收线 #line:08e99b8
|
||||
->收线 #line:08e99b8
|
||||
<<if $wind==1>>
|
||||
<<set $h=$h-1>>
|
||||
<<set $h = $h - 1>>
|
||||
<<set $fzAccend = false>>
|
||||
风把风筝吹得更远,也更低了。 #line:0382454
|
||||
<<kite_state {$h} {$wind}>>
|
||||
<<kite_accent sink>>
|
||||
风把风筝吹得更远,也更低了。 #line:0382454
|
||||
<<elseif $wind==0>>
|
||||
<<set $fzAccend = true>>
|
||||
风筝在风中轻轻摇晃着。 #line:00d85cc
|
||||
<<kite_accent flutter>>
|
||||
风筝在风中轻轻摇晃着。 #line:00d85cc
|
||||
<<elseif $wind==-1>>
|
||||
<<set $h=$h+1>>
|
||||
<<set $h = $h + 1>>
|
||||
<<set $fzAccend = true>>
|
||||
风筝在空中扑地抖了一下,又向高处爬了一截。 #line:00d73d6
|
||||
<<kite_state {$h} {$wind}>>
|
||||
<<kite_accent lift>>
|
||||
风筝在空中扑地抖了一下,又向高处爬了一截。 #line:00d73d6
|
||||
<<endif>>
|
||||
->保持 #line:0e846d1
|
||||
->保持 #line:0e846d1
|
||||
<<if $wind==1>>
|
||||
<<set $fzAccend = true>>
|
||||
风筝线绷得笔直,像是要断掉。 #line:01334ad
|
||||
<<kite_accent taut>>
|
||||
风筝线绷得笔直,像是要断掉。 #line:01334ad
|
||||
<<elseif $wind==0>>
|
||||
<<set $h=$h+1>>
|
||||
<<set $h = $h + 1>>
|
||||
<<set $fzAccend = true>>
|
||||
风筝在风中轻轻摇晃。 #line:03c1cb3
|
||||
<<kite_state {$h} {$wind}>>
|
||||
风筝在风中轻轻摇晃。 #line:03c1cb3
|
||||
<<elseif $wind==-1>>
|
||||
<<set $h=$h-1>>
|
||||
<<set $h = $h - 1>>
|
||||
<<set $fzAccend = false>>
|
||||
风筝线轻轻地垂下来,形成一个更大的弧度。 #line:0d36850
|
||||
<<kite_state {$h} {$wind}>>
|
||||
<<kite_accent sink>>
|
||||
风筝线轻轻地垂下来,形成一个更大的弧度。 #line:0d36850
|
||||
<<endif>>
|
||||
|
||||
<<set $t =$t+1>>
|
||||
<<set $t = $t + 1>>
|
||||
<<if $h>0>>
|
||||
<<jump 风筝2>>
|
||||
<<elseif $t<10>>
|
||||
风筝掉到了地上。女孩捡起风筝,排掉上面的尘土。 #line:0079d8f
|
||||
差一点就飞起来了!可惜。 #line:0b780bf
|
||||
<<kite_state 0 -1 1>>
|
||||
<<kite_accent drop>>
|
||||
风筝掉到了地上。女孩捡起风筝,排掉上面的尘土。 #line:0079d8f
|
||||
差一点就飞起来了!可惜。 #line:0b780bf
|
||||
<<jump 广场>>
|
||||
<<else>>
|
||||
风筝线越收越紧。 #line:0599877
|
||||
风筝线越收越紧。 #line:0599877
|
||||
<<endif>>
|
||||
<<jump 风筝2>>
|
||||
|
||||
@@ -526,6 +570,7 @@ cluster: Day2_Ascent
|
||||
position: -2,398
|
||||
---
|
||||
<<if $gameStage==3>>
|
||||
<<hide_sprite 0>>
|
||||
<<show_large_sprite "whiteboard">>
|
||||
<i>轻飘飘地...</i> #line:0a6d6a5
|
||||
<<wait 1>>
|
||||
@@ -660,7 +705,7 @@ position: -4,927
|
||||
<<if $doorCheck==false>>
|
||||
有那么一瞬间,你感觉脑袋里面有什么东西断开了。 #line:0f8991d
|
||||
<<set $doorCheck=true>>
|
||||
<<set $consciousness=$consciousness+1>>
|
||||
<<set $consciousness = $consciousness + 1>>
|
||||
<<endif>>
|
||||
你觉得你在哪见过这些纹路。 #line:0473a22
|
||||
->推门 #line:02467b3
|
||||
@@ -694,7 +739,7 @@ position: -4,927
|
||||
// <<show_large_sprite "门框特写">>
|
||||
<<set $doorListen=true>>
|
||||
<<show_door_glass_sea 2>>
|
||||
<<set $consciousness=$consciousness+1>>
|
||||
<<set $consciousness = $consciousness + 1>>
|
||||
<<else>>
|
||||
<<show_door_glass_sea 2>>
|
||||
<<endif>>
|
||||
@@ -891,4 +936,4 @@ me: … #line:0030ebf
|
||||
它抬起手,盖下了印章。 #line:027b5ea
|
||||
<<fade_in 2>>
|
||||
<<NextYarn>>
|
||||
===
|
||||
===
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
# 风筝 Yarn 命令使用指南
|
||||
|
||||
适用范围:`Assets/Yarn/FP/FP_Day2_sleep/FP_Day2_sleep.yarn` 的 `风筝1` / `风筝2` 节点。
|
||||
|
||||
## 背景
|
||||
|
||||
放风筝段落原来用 `D2S风筝1/2/3` 三张切图按高度阈值硬切,跨阈值时尺寸跳变,且节点顶部的常驻动效会覆盖选项里的一次性反馈。现已改为**单张风筝图 + 连续参数驱动**,不再使用切图。
|
||||
|
||||
实现在 [`SpriteShowcase.cs`](../Assets/Scripts/SceneManagement/SpriteShowcase.cs) 的“风筝 Rig”区域(`#region 风筝 Rig`),命令注册在 [`BaseYarnCommand.cs`](../Assets/Scripts/Dialog%20System/BaseYarnCommand.cs)。
|
||||
|
||||
### Rig 结构
|
||||
|
||||
```
|
||||
Kite Rig(高度层:缩放 + 位移,对应 $h)
|
||||
└─ Kite Sway(风况层:常驻循环,对应 $wind / 乱度)
|
||||
└─ Kite Accent(顿挫层:一次性动效 + 实际 SpriteRenderer)
|
||||
|
||||
Kite Base(白色底图,独立静态节点,不随高度缩放)
|
||||
Kite Mask(SpriteMask,以底图为形状,风筝层被裁在天空范围内)
|
||||
```
|
||||
|
||||
三层动效各自持有独立 Tween,互不 `Kill`,所以选项里的一次性顿挫不会被节点顶部的常驻风况覆盖掉。
|
||||
|
||||
只用到两张图(Addressable key `Sprite/梦境/{图名}`):
|
||||
|
||||
- `D2S风筝1_风筝层`:风筝本体,挂在顶层可动。
|
||||
- `D2S风筝1_底图`:白色天空底图,静态显示 + 兼作遮罩形状。
|
||||
|
||||
`D2S风筝2/3/4/5` 全套图不再使用(文件保留,未删除)。
|
||||
|
||||
## 命令一览
|
||||
|
||||
| 命令 | 签名 | 说明 |
|
||||
|---|---|---|
|
||||
| `kite_show` | `height=0 wind=0 duration=0.35` | 显示风筝 Rig。若已显示则等价于 `kite_state`(幂等)。会顺带隐藏正在显示的小图/大图。**总是把乱度重置为平稳**,之后要乱流需再调 `kite_wind`。 |
|
||||
| `kite_state` | `height wind duration=0.9 leadDuration=0.35` | 高度补间(缩放+位移,**每次选择的主反馈**)+ 按当前乱度重放风况循环。`leadDuration` 是命令返回前的等待时间,一般不用传。 |
|
||||
| `kite_wind` | `wind turbulence=-1` | 只切换风况循环,不改变高度。用于在选项出现**之前** telegraph 风况,让玩家读画面做判断。 |
|
||||
| `kite_accent` | `profile leadDuration=0.18` | 播放一次性顿挫动效,叠加在顶层,结束后自动回到原位,不打断高度/风况补间。 |
|
||||
| `kite_hide` | `duration=1` | 隐藏风筝 Rig(含底图、遮罩)。 |
|
||||
|
||||
### 参数含义
|
||||
|
||||
- `height` 对应 Yarn 变量 `$h`,范围会被 clamp 到 `[0, 13]`。缩放曲线是 `0.84^height`,且不低于 12%(避免缩到看不见)。
|
||||
- `wind` 对应 Yarn 变量 `$wind`:`1` 强风 / `0` 无风 / `-1` 风弱。
|
||||
- `turbulence`(乱度)范围 `0~1`,**默认表示平稳(0),不是“保持不变”**:
|
||||
- 省略或传负数 → 平稳,风筝沿 CatmullRom 曲线大而缓地漫游(有风时顶风侧倾巡游,无风时自由漂,风弱时缓缓下坠),绝不抖动。
|
||||
- 传正数 → 阵风:静一下 → 猛地被拽走一截(位移+旋转,X/Y 不同步走出弧线)→ 慢慢荡回 → 再来一阵。**每一阵的方向、力度、间隔都是随机的,节奏不重复**;数值越大拉扯越猛、间隔越短,乱度 ≥0.7 时还会概率性甩过头再弹回,读出“失控”。
|
||||
- **乱度是粘滞的**:由 `kite_wind` 显式设定后会保留,后续 `kite_state` 只切高度和风向,仍沿用当前乱度,直到下一次 `kite_wind` 改变它。`kite_show` 会把乱度重置为 0。
|
||||
|
||||
### `kite_accent` 支持的 profile
|
||||
|
||||
| profile | 效果 | 典型使用场景 |
|
||||
|---|---|---|
|
||||
| `lift` | 上冲后回落 | 放线时风筝被吹高 |
|
||||
| `sink` | 下坠沉降 | 收线、风弱掉高度 |
|
||||
| `taut` | 猛地扯直,然后绷住小幅慢速拉锯(不是震动) | 线绷紧、风大顶线 |
|
||||
| `drop` | 猛地下坠(比 sink 更快更急) | 风筝真的掉下去了 |
|
||||
| `flutter` | 左右交替的几下小拉扯,力度递减 | 保持不动、原地挣扎 |
|
||||
|
||||
轱辘特写(`D2S轱辘`)不属于这套 Rig,仍用旧的 `<<show_sprite_motion "D2S轱辘" "reel_tension" duration>>`,动效在 `SpriteShowcase.PlaySmallMotion` / `PlayReelHold` 里维护:先被猛地拽进受力姿态(只进一次),之后绷在那里持续高频颤抖,偶尔再被拽深一点——是“全力拉住”的发力感,不会松回原位。
|
||||
|
||||
## 典型用法模式
|
||||
|
||||
### 1. 进入风筝段落:`kite_show`
|
||||
|
||||
```yarn
|
||||
<<if $t==0>>
|
||||
<<fade_in 1>>
|
||||
<<kite_show 1 0 0.35>>
|
||||
<<fade_out 1>>
|
||||
```
|
||||
|
||||
首次显示传初始高度/风向,乱度自动是平稳的。
|
||||
|
||||
### 2. 每轮风况变化:先 `kite_wind` 让画面 telegraph,再给选项
|
||||
|
||||
`风筝2` 节点里,每次 `<<set $wind=...>>` 之后紧跟一次 `kite_wind`,选项出现前画面已经在演风况了:
|
||||
|
||||
```yarn
|
||||
<<elseif $t==5>>
|
||||
<<set $wind=1>>
|
||||
<<kite_wind {$wind} 0.55>>
|
||||
me: 风…好像停了。好像…没有什么规律。 #line:0c86a64
|
||||
...
|
||||
<<kite_accent flutter>>
|
||||
风筝开始抖动起来。手上感受到的拉力变大、变乱了。 #line:09afac0
|
||||
```
|
||||
|
||||
**乱度取值要对着台词**:台词说“平稳/懒洋洋”就不传乱度(或传 0);台词明确说“乱”“没有规律”“胡乱刮着”才传正数,且数值随描述的混乱程度递增(本节点里 0.55 → 0.8 → 0.95 → 1,逐轮加码)。
|
||||
|
||||
### 3. 选项分支:`kite_state` 是主反馈,`kite_accent` 是点缀
|
||||
|
||||
```yarn
|
||||
->放线 #line:08c3eee
|
||||
<<if $wind==1>>
|
||||
<<set $h = $h + 1>>
|
||||
<<kite_state {$h} {$wind}>>
|
||||
<<kite_accent lift>>
|
||||
风把风筝吹得越来越高,越来越远。 #line:001a06f
|
||||
```
|
||||
|
||||
先改 `$h`,再调用 `kite_state {$h} {$wind}` 让缩放/位置连续补间过去(这是玩家能感知到的主要反馈),再叠加一个短促的 `kite_accent` 强调这次选择的性质。乱度不用每次都传,`kite_state` 会沿用当前乱度。
|
||||
|
||||
### 4. 离场:`kite_hide` 或让互斥逻辑自动处理
|
||||
|
||||
风筝 Rig 已经接入 `ShowObj` / `ShowObjWithMotion` / `ShowLargeObj` / `HideObj` / `HideAll` 的互斥逻辑,切到大图或普通小图时会自动隐藏,不必每次手动 `kite_hide`。只有明确要求“风筝消失但暂不显示别的图”时才需要显式调用。
|
||||
|
||||
## 常见坑
|
||||
|
||||
- **忘记补 `kite_wind` 就直接改 `$wind` 用于选项判断**:`$wind` 变量本身不会驱动画面,画面只认 `kite_wind`/`kite_state` 里传入的 `wind` 参数。改了变量务必配一次画面调用,否则玩家看不出风况变了。
|
||||
- **乱度传太随意**:乱度是“文本说乱才乱”,不要在台词写“平稳”“懒洋洋”的段落里传正数乱度,也不要在台词强调失控时仍用默认的 0。
|
||||
- **以为 `kite_state` 会重置乱度**:不会,乱度只由 `kite_wind` 改变。如果需要在同一句里既改高度又改乱度,要显式调用两条命令(先 `kite_wind` 定乱度,再 `kite_state` 走高度)。
|
||||
- **给风筝以外的图误用 `kite_*` 命令**:这套 Rig 硬编码只加载 `D2S风筝1_风筝层` / `D2S风筝1_底图`,不接受图名参数,不能拿来做别的分层动效——别的分层动效(如轱辘)继续用 `show_sprite_motion`/`sprite_motion`。
|
||||
Reference in New Issue
Block a user