气泡组件和配置项
This commit is contained in:
+1
@@ -14,6 +14,7 @@
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/MiniGame/GearModel.cs" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/MiniGame/ShaftGraph.cs" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/Assets/Scripts/Utility/CommonUtil.cs" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/Assets/StreamingAssets/Config/character.csv" charset="UTF-8" />
|
||||
<file url="PROJECT" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 560a88da2bbc70140bed167f0ba7fe37
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb01be13d6e88ca488dda82150319bfc
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 117dcc671050f5247bd8743b91ecaab7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb058de38923eeb49a2cde87c6380b88
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
@@ -0,0 +1,650 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e18e3df2cf154be45bd08f82ab53036e
|
||||
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: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 200
|
||||
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: 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: 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
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_0"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 14
|
||||
y: 1368
|
||||
width: 319
|
||||
height: 338
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 4e38dd39532b14e448e09562fbc2aa39
|
||||
internalID: -794538966
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_2"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 422
|
||||
y: 1347
|
||||
width: 382
|
||||
height: 351
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: b213656834a254a4ca51b1d8051c3c58
|
||||
internalID: 1224485440
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_3"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 899
|
||||
y: 1365
|
||||
width: 355
|
||||
height: 306
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 77239076ab9d949469d2fad58d716505
|
||||
internalID: 282924855
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_4"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1350
|
||||
y: 1328
|
||||
width: 377
|
||||
height: 378
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 0f33f91f99dfb3046953ce6f697466a4
|
||||
internalID: 1419677617
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_5"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1852
|
||||
y: 1367
|
||||
width: 359
|
||||
height: 306
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: e851b1117a1db1f44a150a9a1c7bc649
|
||||
internalID: 994763620
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_7"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 21
|
||||
y: 920
|
||||
width: 291
|
||||
height: 322
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 39, y: 108, z: 113, w: 37}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: b5b517b4e336a354da6d772764269490
|
||||
internalID: 1373848774
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_8"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 415
|
||||
y: 941
|
||||
width: 335
|
||||
height: 294
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: d5c63c7ff5525c946972ab3f2aa6abfa
|
||||
internalID: 1916947450
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_9"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 830
|
||||
y: 917
|
||||
width: 454
|
||||
height: 337
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 1b39e8e8456680d41ab324a985a623cb
|
||||
internalID: 1086668796
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_10"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1359
|
||||
y: 936
|
||||
width: 358
|
||||
height: 306
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 87, y: 140, z: 138, w: 62}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 4004607a58b3bb14581644c05d9041d6
|
||||
internalID: -1799124147
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_11"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1852
|
||||
y: 946
|
||||
width: 359
|
||||
height: 306
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 09fa8a01b67fc994cb54ed4ca069e6a3
|
||||
internalID: 352843117
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_12"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 2340
|
||||
y: 941
|
||||
width: 359
|
||||
height: 306
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 64cc753c36a594247b6e2876e6d3f128
|
||||
internalID: -21090744
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_13"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 26
|
||||
y: 476
|
||||
width: 290
|
||||
height: 316
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 8de5649982a5b8c4abd22548b436cbae
|
||||
internalID: 833270121
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_14"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 415
|
||||
y: 467
|
||||
width: 387
|
||||
height: 318
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: be656bac536470a469c692b143451e51
|
||||
internalID: 401506560
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_15"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 889
|
||||
y: 462
|
||||
width: 390
|
||||
height: 314
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 39, y: 101, z: 48, w: 48}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 527a5d0835005ad459db359e13b4d6cf
|
||||
internalID: 659638050
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_16"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1377
|
||||
y: 452
|
||||
width: 329
|
||||
height: 335
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: dd8723f43b003cd4ab0ad733288cedf0
|
||||
internalID: -988291238
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_17"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1840
|
||||
y: 465
|
||||
width: 391
|
||||
height: 313
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: b4359661479abef45a12d8054960865e
|
||||
internalID: 1493504134
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_18"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 2422
|
||||
y: 410
|
||||
width: 289
|
||||
height: 322
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 2762b54e451a13149a5f6ab18e87a777
|
||||
internalID: -1880739701
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_19"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 392
|
||||
height: 356
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 0b6819b4964671a438c9584df873ff73
|
||||
internalID: 1236446593
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_20"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 483
|
||||
y: 5
|
||||
width: 261
|
||||
height: 324
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: cbf75387e1e35544d845f75ce7e7188b
|
||||
internalID: 679637573
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_21"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 845
|
||||
y: 1
|
||||
width: 420
|
||||
height: 375
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 5b44e439bdbdea74ab4d7dc91d3dee89
|
||||
internalID: -950092247
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_22"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1359
|
||||
y: 7
|
||||
width: 340
|
||||
height: 342
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 0112b970392c5194b809bd007d9c6def
|
||||
internalID: 89921707
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_24"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 1891
|
||||
y: 35
|
||||
width: 290
|
||||
height: 321
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 0137341e1f75d9642ab3c17ea7e6ea11
|
||||
internalID: -1378344007
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
- serializedVersion: 2
|
||||
name: "\u6C14\u6CE1_25"
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 2425
|
||||
y: 41
|
||||
width: 1025
|
||||
height: 322
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 8f79c9572f97e8f4aa4fb8a69095d921
|
||||
internalID: 1635578145
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable:
|
||||
"\u6C14\u6CE1_0": -794538966
|
||||
"\u6C14\u6CE1_1": -1543085900
|
||||
"\u6C14\u6CE1_10": -1799124147
|
||||
"\u6C14\u6CE1_11": 352843117
|
||||
"\u6C14\u6CE1_12": -21090744
|
||||
"\u6C14\u6CE1_13": 833270121
|
||||
"\u6C14\u6CE1_14": 401506560
|
||||
"\u6C14\u6CE1_15": 659638050
|
||||
"\u6C14\u6CE1_16": -988291238
|
||||
"\u6C14\u6CE1_17": 1493504134
|
||||
"\u6C14\u6CE1_18": -1880739701
|
||||
"\u6C14\u6CE1_19": 1236446593
|
||||
"\u6C14\u6CE1_2": 1224485440
|
||||
"\u6C14\u6CE1_20": 679637573
|
||||
"\u6C14\u6CE1_21": -950092247
|
||||
"\u6C14\u6CE1_22": 89921707
|
||||
"\u6C14\u6CE1_23": -1101974866
|
||||
"\u6C14\u6CE1_24": -1378344007
|
||||
"\u6C14\u6CE1_25": 1635578145
|
||||
"\u6C14\u6CE1_26": -1132510076
|
||||
"\u6C14\u6CE1_3": 282924855
|
||||
"\u6C14\u6CE1_4": 1419677617
|
||||
"\u6C14\u6CE1_5": 994763620
|
||||
"\u6C14\u6CE1_6": 2141135935
|
||||
"\u6C14\u6CE1_7": 1373848774
|
||||
"\u6C14\u6CE1_8": 1916947450
|
||||
"\u6C14\u6CE1_9": 1086668796
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 125 KiB |
@@ -0,0 +1,140 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ea722d84b6dfe044ac7299862920024
|
||||
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: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 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: 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
|
||||
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.
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4cfecb1365a6162428292ebdfcaa2e47
|
||||
guid: f242fb3dde1933640859f1c54591c9c8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 43eb93b1681fda14e9cb5f71b3e1a07e
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,617 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1710999987262464818
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8421241559617079726}
|
||||
- component: {fileID: 5975286064066965976}
|
||||
- component: {fileID: 6215411343711503920}
|
||||
- component: {fileID: 819371682440416758}
|
||||
m_Layer: 5
|
||||
m_Name: Choice Box
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &8421241559617079726
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1710999987262464818}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7131956091114956203}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 601.75, y: -173.93996}
|
||||
m_SizeDelta: {x: 916.934, y: 171.4201}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &5975286064066965976
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1710999987262464818}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Padding:
|
||||
m_Left: 0
|
||||
m_Right: 0
|
||||
m_Top: 0
|
||||
m_Bottom: 0
|
||||
m_ChildAlignment: 3
|
||||
m_Spacing: 1
|
||||
m_ChildForceExpandWidth: 1
|
||||
m_ChildForceExpandHeight: 1
|
||||
m_ChildControlWidth: 0
|
||||
m_ChildControlHeight: 0
|
||||
m_ChildScaleWidth: 0
|
||||
m_ChildScaleHeight: 0
|
||||
m_ReverseArrangement: 0
|
||||
--- !u!222 &6215411343711503920
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1710999987262464818}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &819371682440416758
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1710999987262464818}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &5890622946834639560
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2340543909228546517}
|
||||
- component: {fileID: 5639890485129627689}
|
||||
- component: {fileID: 3495602697405942981}
|
||||
m_Layer: 5
|
||||
m_Name: Next Array
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2340543909228546517
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5890622946834639560}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7131956091114956203}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 0}
|
||||
m_AnchoredPosition: {x: -142.28, y: 67.7}
|
||||
m_SizeDelta: {x: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5639890485129627689
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5890622946834639560}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3495602697405942981
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5890622946834639560}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: afdc34bd5087fee4bbe681c5ef818e20, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &6059188073131988442
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7131956091114956203}
|
||||
- component: {fileID: 6060254505695754241}
|
||||
- component: {fileID: 7549122853052093938}
|
||||
- component: {fileID: 7143386995408466037}
|
||||
m_Layer: 5
|
||||
m_Name: Box
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7131956091114956203
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6059188073131988442}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4734035430968629439}
|
||||
- {fileID: 4013473223034251771}
|
||||
- {fileID: 2340543909228546517}
|
||||
- {fileID: 8421241559617079726}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0}
|
||||
m_AnchorMax: {x: 0.5, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 180}
|
||||
m_SizeDelta: {x: 1200, y: 300}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6060254505695754241
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6059188073131988442}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7549122853052093938
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6059188073131988442}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 0ea722d84b6dfe044ac7299862920024, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &7143386995408466037
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6059188073131988442}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 51f2233614aba944f9b2dab3d5af433b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
delayTime: 300
|
||||
choiceButton: {fileID: 659956759807646603, guid: 4973083c3562511409a2ff2639fbe31b, type: 3}
|
||||
--- !u!1 &6444039290434272966
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4013473223034251771}
|
||||
- component: {fileID: 8735059991624197031}
|
||||
- component: {fileID: 1596915540455727478}
|
||||
- component: {fileID: 1582206514939414771}
|
||||
- component: {fileID: 1810538208425271595}
|
||||
m_Layer: 5
|
||||
m_Name: Dialog Text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4013473223034251771
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6444039290434272966}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7131956091114956203}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 613, y: -170}
|
||||
m_SizeDelta: {x: 939.4397, y: 132.6784}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8735059991624197031
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6444039290434272966}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1596915540455727478
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6444039290434272966}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u5BF9\u8BDD\u5185\u5BB9\u663E\u793A\u5728\u8FD9\u91CC<sub>\u652F\u6301\u5BCC\u6587\u672C</sub>"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 46
|
||||
m_fontSizeBase: 46
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 256
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!114 &1582206514939414771
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6444039290434272966}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
typewriterStartsAutomatically: 1
|
||||
animationLoop: 0
|
||||
timeScale: 0
|
||||
_text: "\u5BF9\u8BDD\u5185\u5BB9\u663E\u793A\u5728\u8FD9\u91CC<sub>\u652F\u6301\u5BCC\u6587\u672C</sub>"
|
||||
useDynamicScaling: 1
|
||||
referenceFontSize: 10
|
||||
isResettingTimeOnNewText: 1
|
||||
useDefaultDatabases: 1
|
||||
databaseBehaviors: {fileID: 11400000, guid: ab7e07cba198f4345b19d351e6a3034f, type: 2}
|
||||
databaseAppearances: {fileID: 11400000, guid: 71ecf6147756deb4ca20570628f94f96, type: 2}
|
||||
useDefaultStyleSheet: 1
|
||||
styleSheet: {fileID: 0}
|
||||
databaseActions: {fileID: 11400000, guid: de78232a60d74f6459e57e5606304209, type: 2}
|
||||
defaultAppearancesTags:
|
||||
- 'fade '
|
||||
defaultDisappearancesTags:
|
||||
- fade
|
||||
defaultBehaviorsTags: []
|
||||
defaultTagsMode: 0
|
||||
--- !u!114 &1810538208425271595
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6444039290434272966}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
useTypeWriter: 1
|
||||
startTypewriterMode: 2
|
||||
hideAppearancesOnSkip: 1
|
||||
hideDisappearancesOnSkip: 0
|
||||
triggerEventsOnSkip: 0
|
||||
resetTypingSpeedAtStartup: 1
|
||||
disappearanceOrientation: 0
|
||||
onTextShowed:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onTypewriterStart:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onTextDisappeared:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onCharacterVisible:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onMessage:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
waitForNormalChars: 0.1
|
||||
waitLong: 0.6
|
||||
waitMiddle: 0.2
|
||||
avoidMultiplePunctuactionWait: 0
|
||||
waitForNewLines: 1
|
||||
waitForLastCharacter: 1
|
||||
useTypewriterWaitForDisappearances: 1
|
||||
disappearanceWaitTime: 0.015
|
||||
disappearanceSpeedMultiplier: 1
|
||||
--- !u!1 &8375416816228738504
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4734035430968629439}
|
||||
- component: {fileID: 6323810537521366264}
|
||||
- component: {fileID: 2256868743146392351}
|
||||
m_Layer: 5
|
||||
m_Name: Actor Name
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4734035430968629439
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8375416816228738504}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 7131956091114956203}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 156, y: -53}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6323810537521366264
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8375416816228738504}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2256868743146392351
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8375416816228738504}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u82F1\u7406"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 50
|
||||
m_fontSizeBase: 50
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 4096
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e2211373480d40243a377721316dd8f7
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,513 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1696114525554538000
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 427735296993809938}
|
||||
- component: {fileID: 6493937739013348050}
|
||||
- component: {fileID: 7387503987222832056}
|
||||
m_Layer: 5
|
||||
m_Name: Next Array
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &427735296993809938
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1696114525554538000}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2114528386511579871}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 0}
|
||||
m_AnchoredPosition: {x: -71.1, y: 104.9}
|
||||
m_SizeDelta: {x: 36, y: 36}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6493937739013348050
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1696114525554538000}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7387503987222832056
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1696114525554538000}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: afdc34bd5087fee4bbe681c5ef818e20, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &7042900623801244561
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5958992798050226847}
|
||||
- component: {fileID: 4077163999082085342}
|
||||
- component: {fileID: 8573609247027237253}
|
||||
m_Layer: 5
|
||||
m_Name: Actor Name
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5958992798050226847
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7042900623801244561}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2114528386511579871}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 139.8, y: -47.9}
|
||||
m_SizeDelta: {x: 200, y: 34}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4077163999082085342
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7042900623801244561}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8573609247027237253
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7042900623801244561}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u82F1\u7406"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 34
|
||||
m_fontSizeBase: 34
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 4096
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &8350799087752378543
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 743756292906217118}
|
||||
- component: {fileID: 779459268729455718}
|
||||
- component: {fileID: 2673124579144078471}
|
||||
- component: {fileID: 6304324492443822404}
|
||||
- component: {fileID: 276549186829526868}
|
||||
m_Layer: 5
|
||||
m_Name: Dialog Text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &743756292906217118
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2114528386511579871}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 236, y: -148}
|
||||
m_SizeDelta: {x: 329.9832, y: 129.8956}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &779459268729455718
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2673124579144078471
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u5BF9\u8BDD\u5185\u5BB9\u663E\u793A\u5728\u8FD9\u91CC<sub>\u652F\u6301\u5BCC\u6587\u672C</sub>"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 30
|
||||
m_fontSizeBase: 30
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 256
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!114 &6304324492443822404
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
typewriterStartsAutomatically: 1
|
||||
animationLoop: 0
|
||||
timeScale: 0
|
||||
_text: "\u5BF9\u8BDD\u5185\u5BB9\u663E\u793A\u5728\u8FD9\u91CC<sub>\u652F\u6301\u5BCC\u6587\u672C</sub>"
|
||||
useDynamicScaling: 1
|
||||
referenceFontSize: 10
|
||||
isResettingTimeOnNewText: 1
|
||||
useDefaultDatabases: 1
|
||||
databaseBehaviors: {fileID: 11400000, guid: ab7e07cba198f4345b19d351e6a3034f, type: 2}
|
||||
databaseAppearances: {fileID: 11400000, guid: 71ecf6147756deb4ca20570628f94f96, type: 2}
|
||||
useDefaultStyleSheet: 1
|
||||
styleSheet: {fileID: 0}
|
||||
databaseActions: {fileID: 11400000, guid: de78232a60d74f6459e57e5606304209, type: 2}
|
||||
defaultAppearancesTags:
|
||||
- 'fade '
|
||||
defaultDisappearancesTags:
|
||||
- fade
|
||||
defaultBehaviorsTags: []
|
||||
defaultTagsMode: 0
|
||||
--- !u!114 &276549186829526868
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
useTypeWriter: 1
|
||||
startTypewriterMode: 2
|
||||
hideAppearancesOnSkip: 1
|
||||
hideDisappearancesOnSkip: 0
|
||||
triggerEventsOnSkip: 0
|
||||
resetTypingSpeedAtStartup: 1
|
||||
disappearanceOrientation: 0
|
||||
onTextShowed:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onTypewriterStart:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onTextDisappeared:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onCharacterVisible:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onMessage:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
waitForNormalChars: 0.1
|
||||
waitLong: 0.6
|
||||
waitMiddle: 0.2
|
||||
avoidMultiplePunctuactionWait: 0
|
||||
waitForNewLines: 1
|
||||
waitForLastCharacter: 1
|
||||
useTypewriterWaitForDisappearances: 1
|
||||
disappearanceWaitTime: 0.015
|
||||
disappearanceSpeedMultiplier: 1
|
||||
--- !u!1 &8518890624210964847
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2114528386511579871}
|
||||
- component: {fileID: 9109024175080783090}
|
||||
- component: {fileID: 7036814853636706666}
|
||||
- component: {fileID: 1577716708503439262}
|
||||
m_Layer: 5
|
||||
m_Name: Bubble
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2114528386511579871
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8518890624210964847}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 5958992798050226847}
|
||||
- {fileID: 743756292906217118}
|
||||
- {fileID: 427735296993809938}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 894.2566, y: -446.05994}
|
||||
m_SizeDelta: {x: 462.0198, y: 318.3407}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &9109024175080783090
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8518890624210964847}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7036814853636706666
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8518890624210964847}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: -1799124147, guid: e18e3df2cf154be45bd08f82ab53036e, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &1577716708503439262
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8518890624210964847}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d43fa24173f81ea4ea102be91896826e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
delayTime: 300
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4d6fa45bd310bc946b5628e62986e494
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -231,8 +231,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0.5}
|
||||
m_AnchorMax: {x: 0, y: 0.5}
|
||||
m_AnchoredPosition: {x: 650, y: 0}
|
||||
m_SizeDelta: {x: 1200, y: 48}
|
||||
m_AnchoredPosition: {x: 450, y: 0}
|
||||
m_SizeDelta: {x: 800, y: 48}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6660134571396433606
|
||||
CanvasRenderer:
|
||||
@@ -264,8 +264,8 @@ MonoBehaviour:
|
||||
m_Calls: []
|
||||
m_text: "\u9009\u9879\u4E00"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 4cfecb1365a6162428292ebdfcaa2e47, type: 2}
|
||||
m_sharedMaterial: {fileID: -4877161827586246797, guid: 4cfecb1365a6162428292ebdfcaa2e47, type: 2}
|
||||
m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
|
||||
@@ -0,0 +1,513 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1696114525554538000
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 427735296993809938}
|
||||
- component: {fileID: 6493937739013348050}
|
||||
- component: {fileID: 7387503987222832056}
|
||||
m_Layer: 5
|
||||
m_Name: Next Array
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &427735296993809938
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1696114525554538000}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2114528386511579871}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 0}
|
||||
m_AnchoredPosition: {x: -64.9, y: 69.8}
|
||||
m_SizeDelta: {x: 36, y: 36}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6493937739013348050
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1696114525554538000}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7387503987222832056
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1696114525554538000}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: afdc34bd5087fee4bbe681c5ef818e20, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &7042900623801244561
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5958992798050226847}
|
||||
- component: {fileID: 4077163999082085342}
|
||||
- component: {fileID: 8573609247027237253}
|
||||
m_Layer: 5
|
||||
m_Name: Actor Name
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5958992798050226847
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7042900623801244561}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2114528386511579871}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 139.8, y: -47.9}
|
||||
m_SizeDelta: {x: 200, y: 34}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4077163999082085342
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7042900623801244561}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8573609247027237253
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7042900623801244561}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u82F1\u7406"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 32
|
||||
m_fontSizeBase: 32
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 4096
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &8350799087752378543
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 743756292906217118}
|
||||
- component: {fileID: 779459268729455718}
|
||||
- component: {fileID: 2673124579144078471}
|
||||
- component: {fileID: 6304324492443822404}
|
||||
- component: {fileID: 276549186829526868}
|
||||
m_Layer: 5
|
||||
m_Name: Dialog Text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &743756292906217118
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2114528386511579871}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 236, y: -136.5614}
|
||||
m_SizeDelta: {x: 329.9832, y: 107.0183}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &779459268729455718
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2673124579144078471
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u5BF9\u8BDD\u5185\u5BB9\u663E\u793A\u5728\u8FD9\u91CC<sub>\u652F\u6301\u5BCC\u6587\u672C</sub>"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_sharedMaterial: {fileID: -6659093157667844055, guid: f242fb3dde1933640859f1c54591c9c8, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 28
|
||||
m_fontSizeBase: 28
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 256
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_enableWordWrapping: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!114 &6304324492443822404
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e8ace8ced0e81c847968cdca0aeda757, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
typewriterStartsAutomatically: 1
|
||||
animationLoop: 0
|
||||
timeScale: 0
|
||||
_text: "\u5BF9\u8BDD\u5185\u5BB9\u663E\u793A\u5728\u8FD9\u91CC<sub>\u652F\u6301\u5BCC\u6587\u672C</sub>"
|
||||
useDynamicScaling: 1
|
||||
referenceFontSize: 10
|
||||
isResettingTimeOnNewText: 1
|
||||
useDefaultDatabases: 1
|
||||
databaseBehaviors: {fileID: 11400000, guid: ab7e07cba198f4345b19d351e6a3034f, type: 2}
|
||||
databaseAppearances: {fileID: 11400000, guid: 71ecf6147756deb4ca20570628f94f96, type: 2}
|
||||
useDefaultStyleSheet: 1
|
||||
styleSheet: {fileID: 0}
|
||||
databaseActions: {fileID: 11400000, guid: de78232a60d74f6459e57e5606304209, type: 2}
|
||||
defaultAppearancesTags:
|
||||
- 'fade '
|
||||
defaultDisappearancesTags:
|
||||
- fade
|
||||
defaultBehaviorsTags: []
|
||||
defaultTagsMode: 0
|
||||
--- !u!114 &276549186829526868
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350799087752378543}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 57a6945b90dcd0c4b81619c0d8b5c283, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
useTypeWriter: 1
|
||||
startTypewriterMode: 2
|
||||
hideAppearancesOnSkip: 1
|
||||
hideDisappearancesOnSkip: 0
|
||||
triggerEventsOnSkip: 0
|
||||
resetTypingSpeedAtStartup: 1
|
||||
disappearanceOrientation: 0
|
||||
onTextShowed:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onTypewriterStart:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onTextDisappeared:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onCharacterVisible:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
onMessage:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
waitForNormalChars: 0.1
|
||||
waitLong: 0.6
|
||||
waitMiddle: 0.2
|
||||
avoidMultiplePunctuactionWait: 0
|
||||
waitForNewLines: 1
|
||||
waitForLastCharacter: 1
|
||||
useTypewriterWaitForDisappearances: 1
|
||||
disappearanceWaitTime: 0.015
|
||||
disappearanceSpeedMultiplier: 1
|
||||
--- !u!1 &8518890624210964847
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2114528386511579871}
|
||||
- component: {fileID: 9109024175080783090}
|
||||
- component: {fileID: 7036814853636706666}
|
||||
- component: {fileID: 1577716708503439262}
|
||||
m_Layer: 5
|
||||
m_Name: Player Bubble
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2114528386511579871
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8518890624210964847}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 5958992798050226847}
|
||||
- {fileID: 743756292906217118}
|
||||
- {fileID: 427735296993809938}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 894.2566, y: -459.18506}
|
||||
m_SizeDelta: {x: 462.0198, y: 292.0905}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &9109024175080783090
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8518890624210964847}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7036814853636706666
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8518890624210964847}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 659638050, guid: e18e3df2cf154be45bd08f82ab53036e, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &1577716708503439262
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8518890624210964847}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d43fa24173f81ea4ea102be91896826e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
delayTime: 300
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c6c82e5d3b6ca4c4f902f55c8c0f4a6a
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,7 +1,7 @@
|
||||
title: Start
|
||||
---
|
||||
<<character_init Art/Character/Express_1>>
|
||||
我: 这是选项测试文件 #line:069537f
|
||||
[character key="2"]我: [/character]这是选项测试文件 #line:069537f
|
||||
我: 做一点测试
|
||||
-> 选项一
|
||||
-> 选项二
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -20,12 +20,12 @@ position: 55,-1208
|
||||
---
|
||||
<<character_switch_image Peipei_1>>
|
||||
<<character_fade_in 1>>
|
||||
我: 我就知道没那么简单……这下可闯大祸了
|
||||
我: PIP……如果我真进去,就完蛋了。我没有见过一个人从PIP出来过……
|
||||
我: ……可我又能做什么呢?我的病人生命垂危…那难道不是紧急状况吗?
|
||||
我: ……
|
||||
我: 我们还剩…三个小时。我们开始吧。
|
||||
我: 坚持住,佩佩。
|
||||
me: 我就知道没那么简单……这下可闯大祸了
|
||||
me: PIP……如果我真进去,就完蛋了。我没有见过一个人从PIP出来过……
|
||||
me: ……可我又能做什么呢?我的病人生命垂危…那难道不是紧急状况吗?
|
||||
me: ……
|
||||
me: 我们还剩…三个小时。我们开始吧。
|
||||
me: 坚持住,佩佩。
|
||||
///进入维修界面
|
||||
<<move_to_fix>>
|
||||
<<fade_in 1>>
|
||||
@@ -43,28 +43,28 @@ position: 55,-1208
|
||||
<<add_task TaskManager "安装UF模块" "重新启动佩佩">>
|
||||
//////我会用“屏幕”这个说话人来代表我希望右上角屏幕显示什么东西,应该不需要专门让玩家点一次
|
||||
<<messagebox MessageBox "warning" "目标状态:休眠中">>
|
||||
我: 看来这就是要给佩佩重新装上的UF模块了……
|
||||
我: 佩佩现在还在休眠,是先把她唤醒打个招呼还是先给她装上UF模块呢?
|
||||
me: 看来这就是要给佩佩重新装上的UF模块了……
|
||||
me: 佩佩现在还在休眠,是先把她唤醒打个招呼还是先给她装上UF模块呢?
|
||||
->先唤醒佩佩
|
||||
我: 还是先让佩佩恢复正常吧,在患者不知情的情况下做手术…我不想这么做。
|
||||
me: 还是先让佩佩恢复正常吧,在患者不知情的情况下做手术…我不想这么做。
|
||||
<<messagebox MessageBox "normal" "尝试重启中">>
|
||||
<<wait 1>>
|
||||
(占位)佩佩身体原件的运转速度恢复正常……
|
||||
(占位)但很快又回到怠速
|
||||
<<messagebox MessageBox "warning" "目标状态:休眠中">>
|
||||
<<wait 1>>
|
||||
我: 他们是怎么远程给她的身体发这种底层指令的?
|
||||
我: 这么说,公司岂不是可以让任何一个人休眠?
|
||||
我: …看来是不可能不装上UF就唤醒佩佩了。
|
||||
me: 他们是怎么远程给她的身体发这种底层指令的?
|
||||
me: 这么说,公司岂不是可以让任何一个人休眠?
|
||||
me: …看来是不可能不装上UF就唤醒佩佩了。
|
||||
->先装上UF
|
||||
我: 唤醒患者,只为了告诉她要接受一个她不想而又不得不接受的手术……
|
||||
我: 这太残忍了……我想我很难面对。
|
||||
我: 我在做对的事情吗?
|
||||
我: ……
|
||||
我: 不管怎样,先把UF装上去吧。
|
||||
我: 活下去……我们都必须要活下去。
|
||||
me: 唤醒患者,只为了告诉她要接受一个她不想而又不得不接受的手术……
|
||||
me: 这太残忍了……我想我很难面对。
|
||||
me: 我在做对的事情吗?
|
||||
me: ……
|
||||
me: 不管怎样,先把UF装上去吧。
|
||||
me: 活下去……我们都必须要活下去。
|
||||
///安装UF
|
||||
我: UF似乎是直接嵌入在左眼上的……我需要查阅下说明书。
|
||||
me: UF似乎是直接嵌入在左眼上的……我需要查阅下说明书。
|
||||
///<<OpenBook BookManager>>
|
||||
///<<Flip BookManager 13 >>
|
||||
///[command name=listen_closeBook /]
|
||||
@@ -76,45 +76,45 @@ position: 55,-1208
|
||||
<<Set_ViewVisualState ViewManager "UFView" 2>>
|
||||
<<fade_out 1>>
|
||||
(占位)将铆钉放在对应的位置上并钉上4个铆钉。钉第一个铆钉时:
|
||||
我: 这个声音听起来真糟糕。
|
||||
me: 这个声音听起来真糟糕。
|
||||
->(占位)钉好剩下的3个铆钉
|
||||
我: 好像没有反应……
|
||||
我: 难道说一定要把色觉芯片装给UF吗?
|
||||
me: 好像没有反应……
|
||||
me: 难道说一定要把色觉芯片装给UF吗?
|
||||
//////取下色觉芯片感觉是需要额外一步任务目标提示的
|
||||
->(占位)取下佩佩的色觉芯片,安装给UF
|
||||
<<fade_in 1>>
|
||||
<<Set_ViewVisualState ViewManager "UFView" 1>>
|
||||
<<Set_ViewVisualState ViewManager "ColorView" 1>>
|
||||
<<fade_out 1>>
|
||||
我: 好,应该可以启动了。
|
||||
me: 好,应该可以启动了。
|
||||
->(占位)安装UF外壳
|
||||
<<fade_in 1>>
|
||||
<<Set_ViewVisualState ViewManager "UFView" 0>>
|
||||
<<complete_task TaskManager "安装UF模块">>
|
||||
<<fade_out 1>>
|
||||
我: 佩佩,醒来吧。
|
||||
me: 佩佩,醒来吧。
|
||||
<<messagebox MessageBox "normal" "尝试重启中">>
|
||||
<<wait 1>>
|
||||
///佩佩的pulse恢复正常,UF模块亮起红灯
|
||||
<<messagebox MessageBox "warning" "关键模块未正常运行,请排除故障">>
|
||||
<<add_task TaskManager "排除故障" "重新启动佩佩">>
|
||||
<<wait 1>>
|
||||
<color=\#00FFFF>佩佩</color>: 好美……
|
||||
我: 佩佩?
|
||||
<color=\#00FFFF>佩佩</color>: 医生……
|
||||
<color=\#00FFFF>佩佩</color>: 我……替你……夕阳……
|
||||
我: 佩佩?你能看到我吗?
|
||||
<color=\#00FFFF>佩佩</color>: 我在……
|
||||
我: 佩佩,你#auto_next
|
||||
<color=\#00FFFF>佩佩</color>: 好美……医生……
|
||||
peipei: 好美……
|
||||
me: 佩佩?
|
||||
peipei: 医生……
|
||||
peipei: 我……替你……夕阳……
|
||||
me: 佩佩?你能看到我吗?
|
||||
peipei: 我在……
|
||||
me: 佩佩,你#auto_next
|
||||
peipei: 好美……医生……
|
||||
//////怎么实现打断
|
||||
我: 啊……她没有被完全唤醒。当然。
|
||||
我: 她还没有被完全修好,UF模块有一个报错灯。我明白了。
|
||||
我: 公司要保证UF恢复正常才会让她的意识被完全唤醒。
|
||||
我: 哈,我就知道…这并不是结束。
|
||||
<color=\#00FFFF>佩佩</color>: 看……夕阳……
|
||||
我: 她还停留在那个画面上。我会恢复你的,佩佩。
|
||||
我: 让我们来看看是哪里有问题吧。
|
||||
me: 啊……她没有被完全唤醒。当然。
|
||||
me: 她还没有被完全修好,UF模块有一个报错灯。我明白了。
|
||||
me: 公司要保证UF恢复正常才会让她的意识被完全唤醒。
|
||||
me: 哈,我就知道…这并不是结束。
|
||||
peipei: 看……夕阳……
|
||||
me: 她还停留在那个画面上。我会恢复你的,佩佩。
|
||||
me: 让我们来看看是哪里有问题吧。
|
||||
<<jump Choice>>
|
||||
===
|
||||
|
||||
@@ -149,16 +149,16 @@ position: 55,-1208
|
||||
//////可以把特征码输入到记忆进行查询找到有问题的记忆
|
||||
//////需要确认一下屏幕可以显示的字数——感觉有些是可以在手册做的,但是这样对话怎么推进?
|
||||
//////——对话提示找到手册对应内容,然后才推进?
|
||||
我: 跟第一次一样的报错信息……我就知道没有这么简单……问题不会凭空消失的。
|
||||
我: ……
|
||||
我: 冷静。
|
||||
我: 这里有一个记忆相关的<b><size=100%><color=\#FFB200>特征码</color></b> ,我…先去记忆做一次检查吧。
|
||||
me: 跟第一次一样的报错信息……我就知道没有这么简单……问题不会凭空消失的。
|
||||
me: ……
|
||||
me: 冷静。
|
||||
me: 这里有一个记忆相关的<b><size=100%><color=\#FFB200>特征码</color></b> ,我…先去记忆做一次检查吧。
|
||||
<<complete_task TaskManager "排除故障">>
|
||||
<<add_task TaskManager "检查新出现的记忆" "重新启动佩佩">>
|
||||
<<set $UFVisited_PeipeiTalk3= true>>
|
||||
<<jump Choice>>
|
||||
<<else>>
|
||||
我: UF又不兼容了,先去查查记忆吧。
|
||||
me: UF又不兼容了,先去查查记忆吧。
|
||||
<<jump Choice>>
|
||||
<<endif>>
|
||||
//////插视觉的时候应该提示玩家视觉已经在运行了,所以会产生新的报错(理论上是视觉阻止了UF)
|
||||
@@ -171,7 +171,7 @@ position: 55,-1208
|
||||
<<Enable_plugInput Plug>>
|
||||
<<endif>>
|
||||
<<messagebox MessageBox "normal" "EyeModule is normal">>
|
||||
我: 视觉看起来没问题。
|
||||
me: 视觉看起来没问题。
|
||||
<<jump Choice>>
|
||||
->MemoryView
|
||||
<<if $MemorySocketVisited_PeipeiTalk3==false>>
|
||||
@@ -188,7 +188,7 @@ position: 55,-1208
|
||||
<<Disable_plugInput Plug>>
|
||||
<<jump CurrentMemory>>
|
||||
<<else>>
|
||||
我: 记忆模块似乎有问题,不过我需要得到<b><size=100%><color=\#FFB200>特征码</color></b> 才能进行检查。
|
||||
me: 记忆模块似乎有问题,不过我需要得到<b><size=100%><color=\#FFB200>特征码</color></b> 才能进行检查。
|
||||
<<jump Choice>>
|
||||
<<endif>>
|
||||
->LogicView
|
||||
@@ -200,7 +200,7 @@ position: 55,-1208
|
||||
<<Enable_plugInput Plug>>
|
||||
<<endif>>
|
||||
<<messagebox MessageBox "normal" "LogicModule is normal">>
|
||||
我: 逻辑看起来没问题。
|
||||
me: 逻辑看起来没问题。
|
||||
<<jump Choice>>
|
||||
->SpeakView
|
||||
<<if $SpeakSocketVisited_PeipeiTalk3==false>>
|
||||
@@ -211,7 +211,7 @@ position: 55,-1208
|
||||
<<Enable_plugInput Plug>>
|
||||
<<endif>>
|
||||
<<messagebox MessageBox "normal" "SpeakModule is normal">>
|
||||
我: 语言看起来没问题。
|
||||
me: 语言看起来没问题。
|
||||
<<jump Choice>>
|
||||
->EmoView
|
||||
<<if $EmoSocketVisited_PeipeiTalk3==false>>
|
||||
@@ -222,10 +222,10 @@ position: 55,-1208
|
||||
<<Enable_plugInput Plug>>
|
||||
<<endif>>
|
||||
<<messagebox MessageBox "normal" "EmoModule is normal">>
|
||||
我: 情绪看起来没问题。
|
||||
me: 情绪看起来没问题。
|
||||
<<jump Choice>>
|
||||
->ColorView
|
||||
我: 色觉芯片最后还是拆给UF了。
|
||||
me: 色觉芯片最后还是拆给UF了。
|
||||
<<jump Choice>>
|
||||
===
|
||||
|
||||
@@ -235,16 +235,16 @@ position: 55,-1208
|
||||
title: CurrentMemory
|
||||
position: 55,-1208
|
||||
---
|
||||
我: 这……似乎是一个很新的记忆。它好像被录了好几遍,像是……
|
||||
我: 像是被很用力地记住了。
|
||||
me: 这……似乎是一个很新的记忆。它好像被录了好几遍,像是……
|
||||
me: 像是被很用力地记住了。
|
||||
->播放记忆
|
||||
<color=\#00FFFF>佩佩</color>: ····这里···树叶有些凋落了······我······
|
||||
我: 为什么播放得断断续续的……
|
||||
<color=\#00FFFF>佩佩</color>: ···要是能····一直····就好了·····
|
||||
peipei: ····这里···树叶有些凋落了······我······
|
||||
me: 为什么播放得断断续续的……
|
||||
peipei: ···要是能····一直····就好了·····
|
||||
|
||||
//////老问题:我如何通过看完这个记忆得出这个结论:“UF要调用的记忆正在被视觉占用”?
|
||||
我: 可惜这个状态下我看不清记忆里的内容…大概是因为你还没有被完全唤醒。
|
||||
我: 等你好一点,我们再来聊聊你的记忆。
|
||||
me: 可惜这个状态下我看不清记忆里的内容…大概是因为你还没有被完全唤醒。
|
||||
me: 等你好一点,我们再来聊聊你的记忆。
|
||||
//<<fade_in 1>>
|
||||
//<<load_scene 佩佩视觉模块>>
|
||||
//<<Set_ViewVisualState ViewManager "ColorView" 0>>
|
||||
@@ -252,36 +252,36 @@ position: 55,-1208
|
||||
<<start_transition ViewManager "MainView">>
|
||||
<<Disable_plugInput Plug>>
|
||||
<<complete_task TaskManager "检查新出现的记忆">>
|
||||
我: 还是这个问题,现在又恢复到最初的状态了。
|
||||
我: 她的视觉里的想象力在调用记忆,而这扰乱了UF的正常工作。
|
||||
我: 但如果掐断这个调用,想象力又会直接对UF造成影响。
|
||||
我: 治疗不好佩佩,我也会进<b><size=100%><color=\#FFB200>PIP</color></b> …但是佩佩的问题根本就是无法被解决的……
|
||||
我: 我真倒霉。佩佩……
|
||||
我: 她就像一条本应生活在大海却被关在鱼缸里的鱼……里边或者外边,都是同一条死路。
|
||||
我: ……
|
||||
我: 我该怎么办?
|
||||
我: ……
|
||||
我: 冷静。手册里面说不定会有我错过的内容。让我再检查一遍。
|
||||
me: 还是这个问题,现在又恢复到最初的状态了。
|
||||
me: 她的视觉里的想象力在调用记忆,而这扰乱了UF的正常工作。
|
||||
me: 但如果掐断这个调用,想象力又会直接对UF造成影响。
|
||||
me: 治疗不好佩佩,我也会进<b><size=100%><color=\#FFB200>PIP</color></b> …但是佩佩的问题根本就是无法被解决的……
|
||||
me: 我真倒霉。佩佩……
|
||||
me: 她就像一条本应生活在大海却被关在鱼缸里的鱼……里边或者外边,都是同一条死路。
|
||||
me: ……
|
||||
me: 我该怎么办?
|
||||
me: ……
|
||||
me: 冷静。手册里面说不定会有我错过的内容。让我再检查一遍。
|
||||
->检查手册
|
||||
<<OpenBook BookManager>>
|
||||
<<Flip BookManager 14 >>
|
||||
[command name=listen_closeBook /]
|
||||
[options /]
|
||||
->CloseBook
|
||||
我: 记忆…初始化?
|
||||
我: 初始化掉所有的记忆,就像新生一样……
|
||||
我: 如果佩佩从没见过颜色……她也就没办法想象颜色了。
|
||||
我: 对她来说,世界本来就是黑白的,夕阳、绿叶……本来就是灰色的。一切本应如此。
|
||||
我: 如果这样的话,想象力也就不会调用记忆去填补色彩了,因为……
|
||||
我: 根本没有什么色彩可以用来想象了。
|
||||
我: 这确实是……可行的。真的只能如此了吗……
|
||||
//我: 我确定要这么做吗?也许还有别的办法……
|
||||
me: 记忆…初始化?
|
||||
me: 初始化掉所有的记忆,就像新生一样……
|
||||
me: 如果佩佩从没见过颜色……她也就没办法想象颜色了。
|
||||
me: 对她来说,世界本来就是黑白的,夕阳、绿叶……本来就是灰色的。一切本应如此。
|
||||
me: 如果这样的话,想象力也就不会调用记忆去填补色彩了,因为……
|
||||
me: 根本没有什么色彩可以用来想象了。
|
||||
me: 这确实是……可行的。真的只能如此了吗……
|
||||
//me: 我确定要这么做吗?也许还有别的办法……
|
||||
//////以某种方式,我发现还可以捐献自己的色觉
|
||||
///我: 我明白了,姐姐。如果是你的话,你确实会这么做的……
|
||||
///me: 我明白了,姐姐。如果是你的话,你确实会这么做的……
|
||||
//////需要想办法提示玩家“不要担心我自己失去色觉可能带来的问题”——其实BOOOM版本对这个问题还好,也许设法给“纠结于这个问题”的玩家一个提示就可以?
|
||||
///我: 好像只有这两个办法了。
|
||||
///我: 冷静,冷静,这一次必须慎重。
|
||||
///我: 为了治好佩佩,我要怎么做?
|
||||
///me: 好像只有这两个办法了。
|
||||
///me: 冷静,冷静,这一次必须慎重。
|
||||
///me: 为了治好佩佩,我要怎么做?
|
||||
///->捐献自己的色觉
|
||||
/// <<jump Sacrification>>
|
||||
//->执行记忆色彩初始化
|
||||
@@ -297,8 +297,8 @@ position: 55,-1208
|
||||
<<declare $Memory1Fade_PeipeiTalk3 = false>>
|
||||
<<declare $Memory2Fade_PeipeiTalk3 = false>>
|
||||
<<declare $Memory3Fade_PeipeiTalk3 = false>>
|
||||
我: 对不起,佩佩……
|
||||
我: 现在,该让一切结束了。
|
||||
me: 对不起,佩佩……
|
||||
me: 现在,该让一切结束了。
|
||||
<<complete_task TaskManager "重新启动佩佩">>
|
||||
<<clear_tasks TaskManager>>
|
||||
<<add_task TaskManager "重新启动佩佩">>
|
||||
@@ -307,16 +307,16 @@ position: 55,-1208
|
||||
<<hide_dialog>>
|
||||
<<messagebox MessageBox "normal" "正在执行记忆色彩初始化……请稍候">>
|
||||
<<wait 1>>
|
||||
我: 对不起,佩佩...
|
||||
me: 对不起,佩佩...
|
||||
<<wait 3>>
|
||||
<<messagebox MessageBox "warning" "只读的记忆,请进入记忆模块手动处理">>
|
||||
<<wait 2>>
|
||||
//屏幕: 正在执行记忆色彩初始化……请稍候
|
||||
//屏幕: 警告:只读的记忆,请进入记忆模块手动处理。
|
||||
我: 只读记忆?
|
||||
我: ……我明白了。
|
||||
我: 一定是那些让佩佩对色彩留下印象深刻的记忆。像钉子一样被钉在了那里,不希望被忘记……
|
||||
我: 佩佩,该放手了。不然你就永远也无法醒来了。
|
||||
me: 只读记忆?
|
||||
me: ……我明白了。
|
||||
me: 一定是那些让佩佩对色彩留下印象深刻的记忆。像钉子一样被钉在了那里,不希望被忘记……
|
||||
me: 佩佩,该放手了。不然你就永远也无法醒来了。
|
||||
->进入记忆深度
|
||||
<<start_transition ViewManager "MemoryView">>
|
||||
<<jump InitializationChoice>>
|
||||
@@ -328,146 +328,146 @@ position: 55,-1208
|
||||
---
|
||||
///涂改选项
|
||||
<<if $Memory1Fade_PeipeiTalk3 == false && $Memory2Fade_PeipeiTalk3 == false && $Memory3Fade_PeipeiTalk3 == false>>
|
||||
我: 有三个记忆……
|
||||
me: 有三个记忆……
|
||||
->播放写生记忆
|
||||
<<search_memory MemoryManager "liuying1-2">>
|
||||
我: 和朋友的写生,你的决心就像旷野里的绿色那样不会褪去。
|
||||
我: 人生是旷野,不是轨道……么?
|
||||
me: 和朋友的写生,你的决心就像旷野里的绿色那样不会褪去。
|
||||
me: 人生是旷野,不是轨道……么?
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory1Fade_PeipeiTalk3= true>>
|
||||
我: 抱歉……如果不让绿色褪去,我就无法挽救你。
|
||||
me: 抱歉……如果不让绿色褪去,我就无法挽救你。
|
||||
<<jump InitializationChoice>>
|
||||
->播放夕阳记忆
|
||||
<<search_memory MemoryManager "liuying1-1">>
|
||||
我: 啊…粉红的火烧云,夏夜晚风虫鸣和他。
|
||||
me: 啊…粉红的火烧云,夏夜晚风虫鸣和他。
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory2Fade_PeipeiTalk3= true>>
|
||||
我: 对不起,冬天要来了。
|
||||
me: 对不起,冬天要来了。
|
||||
<<jump InitializationChoice>>
|
||||
->播放蓝天记忆
|
||||
<<search_memory MemoryManager "liuying1-3">>
|
||||
我: 你是因为生了什么病而被困在那个病房里呢?
|
||||
我: 我可能永远也不会知道了……
|
||||
me: 你是因为生了什么病而被困在那个病房里呢?
|
||||
me: 我可能永远也不会知道了……
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory3Fade_PeipeiTalk3= true>>
|
||||
我: 现在这个病房将不再困扰你了……你自由了。
|
||||
me: 现在这个病房将不再困扰你了……你自由了。
|
||||
<<jump InitializationChoice>>
|
||||
<<elseif $Memory1Fade_PeipeiTalk3 == true && $Memory2Fade_PeipeiTalk3 == false && $Memory3Fade_PeipeiTalk3 == false>>
|
||||
->播放夕阳记忆
|
||||
<<search_memory MemoryManager "liuying1-1">>
|
||||
我: 啊…粉红的火烧云,夏夜晚风虫鸣和他。
|
||||
me: 啊…粉红的火烧云,夏夜晚风虫鸣和他。
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory2Fade_PeipeiTalk3= true>>
|
||||
我: 对不起,冬天要来了。
|
||||
me: 对不起,冬天要来了。
|
||||
<<jump InitializationChoice>>
|
||||
->播放蓝天记忆
|
||||
<<search_memory MemoryManager "liuying1-3">>
|
||||
我: 你是因为生了什么病而被困在那个病房里呢?
|
||||
我: 我可能永远也不会知道了……
|
||||
me: 你是因为生了什么病而被困在那个病房里呢?
|
||||
me: 我可能永远也不会知道了……
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory3Fade_PeipeiTalk3= true>>
|
||||
我: 现在这个病房将不再困扰你了……你自由了。
|
||||
me: 现在这个病房将不再困扰你了……你自由了。
|
||||
<<jump InitializationChoice>>
|
||||
<<elseif $Memory1Fade_PeipeiTalk3 == false && $Memory2Fade_PeipeiTalk3 == true && $Memory3Fade_PeipeiTalk3 == false>>
|
||||
->播放写生记忆
|
||||
<<search_memory MemoryManager "liuying1-2">>
|
||||
我: 和朋友的写生,你的决心就像旷野里的绿色那样不会褪去。
|
||||
我: 人生是旷野,不是轨道……么?
|
||||
me: 和朋友的写生,你的决心就像旷野里的绿色那样不会褪去。
|
||||
me: 人生是旷野,不是轨道……么?
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory1Fade_PeipeiTalk3= true>>
|
||||
我: 抱歉……如果不让绿色褪去,我就无法挽救你。
|
||||
me: 抱歉……如果不让绿色褪去,我就无法挽救你。
|
||||
<<jump InitializationChoice>>
|
||||
->播放蓝天记忆
|
||||
<<search_memory MemoryManager "liuying1-3">>
|
||||
我: 你是因为生了什么病而被困在那个病房里呢?
|
||||
我: 我可能永远也不会知道了……
|
||||
me: 你是因为生了什么病而被困在那个病房里呢?
|
||||
me: 我可能永远也不会知道了……
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory3Fade_PeipeiTalk3= true>>
|
||||
我: 现在这个病房将不再困扰你了……你自由了。
|
||||
me: 现在这个病房将不再困扰你了……你自由了。
|
||||
<<jump InitializationChoice>>
|
||||
<<elseif $Memory1Fade_PeipeiTalk3 == false && $Memory2Fade_PeipeiTalk3 == false && $Memory3Fade_PeipeiTalk3 == true>>
|
||||
->播放写生记忆
|
||||
<<search_memory MemoryManager "liuying1-2">>
|
||||
我: 和朋友的写生,你的决心就像旷野里的绿色那样不会褪去。
|
||||
我: 人生是旷野,不是轨道……么?
|
||||
me: 和朋友的写生,你的决心就像旷野里的绿色那样不会褪去。
|
||||
me: 人生是旷野,不是轨道……么?
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory1Fade_PeipeiTalk3= true>>
|
||||
我: 抱歉……如果不让绿色褪去,我就无法挽救你。
|
||||
me: 抱歉……如果不让绿色褪去,我就无法挽救你。
|
||||
<<jump InitializationChoice>>
|
||||
->播放夕阳记忆
|
||||
<<search_memory MemoryManager "liuying1-1">>
|
||||
我: 啊…粉红的火烧云,夏夜晚风虫鸣和他。
|
||||
me: 啊…粉红的火烧云,夏夜晚风虫鸣和他。
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory2Fade_PeipeiTalk3= true>>
|
||||
我: 对不起,冬天要来了。
|
||||
me: 对不起,冬天要来了。
|
||||
<<jump InitializationChoice>>
|
||||
<<elseif $Memory1Fade_PeipeiTalk3 == true && $Memory2Fade_PeipeiTalk3 == true && $Memory3Fade_PeipeiTalk3 == false>>
|
||||
->播放蓝天记忆
|
||||
<<search_memory MemoryManager "liuying1-3">>
|
||||
我: 你是因为生了什么病而被困在那个病房里呢?
|
||||
我: 我可能永远也不会知道了……
|
||||
me: 你是因为生了什么病而被困在那个病房里呢?
|
||||
me: 我可能永远也不会知道了……
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory3Fade_PeipeiTalk3= true>>
|
||||
我: 现在这个病房将不再困扰你了……你自由了。
|
||||
me: 现在这个病房将不再困扰你了……你自由了。
|
||||
<<jump InitializationChoice>>
|
||||
<<elseif $Memory1Fade_PeipeiTalk3 == true && $Memory2Fade_PeipeiTalk3 == false && $Memory3Fade_PeipeiTalk3 == true>>
|
||||
->播放夕阳记忆
|
||||
<<search_memory MemoryManager "liuying1-1">>
|
||||
我: 啊…粉红的火烧云,夏夜晚风虫鸣和他。
|
||||
me: 啊…粉红的火烧云,夏夜晚风虫鸣和他。
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory2Fade_PeipeiTalk3= true>>
|
||||
我: 对不起,冬天要来了。
|
||||
me: 对不起,冬天要来了。
|
||||
<<jump InitializationChoice>>
|
||||
<<elseif $Memory1Fade_PeipeiTalk3 == false && $Memory2Fade_PeipeiTalk3 == true && $Memory3Fade_PeipeiTalk3 == true>>
|
||||
->播放写生记忆
|
||||
<<search_memory MemoryManager "liuying1-2">>
|
||||
我: 和朋友的写生,你的决心就像旷野里的绿色那样不会褪去。
|
||||
我: 人生是旷野,不是轨道……么?
|
||||
me: 和朋友的写生,你的决心就像旷野里的绿色那样不会褪去。
|
||||
me: 人生是旷野,不是轨道……么?
|
||||
->手动进行色彩初始化
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
<<set $Memory1Fade_PeipeiTalk3= true>>
|
||||
我: 抱歉……如果不让绿色褪去,我就无法挽救你。
|
||||
me: 抱歉……如果不让绿色褪去,我就无法挽救你。
|
||||
<<jump InitializationChoice>>
|
||||
<<else>>
|
||||
我: 好了……都结束了。
|
||||
我: ……
|
||||
//我: 不。好像还有一个……不愿意被忘掉的记忆。
|
||||
我: 不,好像还有一个。是最新的记忆……
|
||||
me: 好了……都结束了。
|
||||
me: ……
|
||||
//me: 不。好像还有一个……不愿意被忘掉的记忆。
|
||||
me: 不,好像还有一个。是最新的记忆……
|
||||
->播放记忆
|
||||
<<hide_dialog>>
|
||||
<<search_memory MemoryManager "liuying3-1">>
|
||||
<color=\#00FFFF>佩佩</color>: 嗨!医生。又见面啦。
|
||||
<color=\#00FFFF>佩佩</color>: 你会看到这段记忆吧?我知道……我从来就没有机会逃离这一切。
|
||||
<color=\#00FFFF>佩佩</color>: 这里和我记忆里的有些不一样了。不知道是不是因为树叶有些凋落了。
|
||||
<color=\#00FFFF>佩佩</color>: 可是它们明年还会长出来,然后会再凋落,再照常长出来……永远在这座山上。
|
||||
peipei: 嗨!医生。又见面啦。
|
||||
peipei: 你会看到这段记忆吧?我知道……我从来就没有机会逃离这一切。
|
||||
peipei: 这里和我记忆里的有些不一样了。不知道是不是因为树叶有些凋落了。
|
||||
peipei: 可是它们明年还会长出来,然后会再凋落,再照常长出来……永远在这座山上。
|
||||
(摇树的声音,沙沙落叶)
|
||||
<color=\#00FFFF>佩佩</color>: 我们就像这些叶子,不是吗?
|
||||
<color=\#00FFFF>佩佩</color>: 无论如何,真的很感谢你,医生。你是这个地方最在乎我的人。
|
||||
<color=\#00FFFF>佩佩</color>: 太阳马上就要落下了……这里一直都这么冷吗?
|
||||
<color=\#00FFFF>佩佩</color>: 好美啊。
|
||||
<color=\#00FFFF>佩佩</color>: ……
|
||||
<color=\#00FFFF>佩佩</color>: 要是能一直坐在这儿就好了。
|
||||
peipei: 我们就像这些叶子,不是吗?
|
||||
peipei: 无论如何,真的很感谢你,医生。你是这个地方最在乎我的人。
|
||||
peipei: 太阳马上就要落下了……这里一直都这么冷吗?
|
||||
peipei: 好美啊。
|
||||
peipei: ……
|
||||
peipei: 要是能一直坐在这儿就好了。
|
||||
<<wait 1>>
|
||||
我: ……
|
||||
我: 我……
|
||||
me: ……
|
||||
me: 我……
|
||||
-> 手动进行色彩初始化
|
||||
<<jump BadEnding>>
|
||||
-> 不
|
||||
我: 我做不到。
|
||||
我: 花了这么多工夫,我们走了这么远,结果到头来……我们根本没有离开这里一步。
|
||||
我: 难道真的就这样了吗?
|
||||
我: 好好想想。好好想想……
|
||||
me: 我做不到。
|
||||
me: 花了这么多工夫,我们走了这么远,结果到头来……我们根本没有离开这里一步。
|
||||
me: 难道真的就这样了吗?
|
||||
me: 好好想想。好好想想……
|
||||
<<jump FinalTest>>
|
||||
<<endif>>
|
||||
===
|
||||
@@ -476,40 +476,40 @@ position: 55,-1208
|
||||
title: FinalTest
|
||||
position: 100,100
|
||||
---
|
||||
我: 还有什么办法…可以拯救佩佩呢……
|
||||
me: 还有什么办法…可以拯救佩佩呢……
|
||||
->处理记忆模块的占用
|
||||
我: 根本问题还是在于佩佩的记忆模块……如果能想办法处理这种占用就好了。
|
||||
我: ……
|
||||
我: 不,这不太可能。
|
||||
我: 想象力……到目前为止我还不知道它实际上是个什么东西。
|
||||
我: 我根本没办法处理一个我看不见的进程的占用……
|
||||
me: 根本问题还是在于佩佩的记忆模块……如果能想办法处理这种占用就好了。
|
||||
me: ……
|
||||
me: 不,这不太可能。
|
||||
me: 想象力……到目前为止我还不知道它实际上是个什么东西。
|
||||
me: 我根本没办法处理一个我看不见的进程的占用……
|
||||
<<jump FinalTest>>
|
||||
->升级UF模块
|
||||
我: 手册上似乎说过佩佩的问题在某个更新解决了。但实际上……
|
||||
我: 是不是UF没有升级到最新呢?
|
||||
我: ……
|
||||
我: 无论如何,我已经把它拆开来看过了。
|
||||
我: 里面根本没有可以让我升级它的东西……对这个铁疙瘩,我什么也做不了。
|
||||
me: 手册上似乎说过佩佩的问题在某个更新解决了。但实际上……
|
||||
me: 是不是UF没有升级到最新呢?
|
||||
me: ……
|
||||
me: 无论如何,我已经把它拆开来看过了。
|
||||
me: 里面根本没有可以让我升级它的东西……对这个铁疙瘩,我什么也做不了。
|
||||
<<jump FinalTest>>
|
||||
->再找一个色觉芯片
|
||||
我: 我也有…色觉芯片。
|
||||
我: 如果我把我自己的色觉……取下来给她,是不是就……?
|
||||
我: 如果她能看到颜色,也就不会再向记忆发送请求了。
|
||||
我: 可以…这是可行的!
|
||||
我: ……冷静,好好想想。
|
||||
me: 我也有…色觉芯片。
|
||||
me: 如果我把我自己的色觉……取下来给她,是不是就……?
|
||||
me: 如果她能看到颜色,也就不会再向记忆发送请求了。
|
||||
me: 可以…这是可行的!
|
||||
me: ……冷静,好好想想。
|
||||
<<hide_dialog>>
|
||||
<<wait 2>>
|
||||
//占位: 一段和姐姐的记忆让你想到你或许可以把自己的色觉芯片给佩佩
|
||||
// ->忘了这一切吧。
|
||||
// ->我们怎么到今天这步的?
|
||||
// ->这是最好的办法。
|
||||
我: 我可以继续进行色彩初始化,彻底结束佩佩的色彩想象……
|
||||
我: 但佩佩也就不会再有彩色的记忆,也不会看到色彩了。
|
||||
我: 我也可以将我自己的色彩模块给她,佩佩能看到颜色,就不再需要进行记忆调用了……
|
||||
我: 但我的世界将成为黑白。
|
||||
我: 我能承受么?
|
||||
我: ……
|
||||
我: 到了要做决定的时候了。
|
||||
me: 我可以继续进行色彩初始化,彻底结束佩佩的色彩想象……
|
||||
me: 但佩佩也就不会再有彩色的记忆,也不会看到色彩了。
|
||||
me: 我也可以将我自己的色彩模块给她,佩佩能看到颜色,就不再需要进行记忆调用了……
|
||||
me: 但我的世界将成为黑白。
|
||||
me: 我能承受么?
|
||||
me: ……
|
||||
me: 到了要做决定的时候了。
|
||||
->手动进行色彩初始化
|
||||
<<jump BadEnding>>
|
||||
->把自己的色觉芯片给佩佩
|
||||
@@ -521,7 +521,7 @@ title: BadEnding
|
||||
position: 0,0
|
||||
---
|
||||
<<ColorFadeOut MemoryManager>>
|
||||
我: 一切应该都结束了……都结束了。
|
||||
me: 一切应该都结束了……都结束了。
|
||||
->重新唤醒佩佩
|
||||
<<fade_in 1>>
|
||||
<<load_scene ClinicScene>>
|
||||
@@ -530,23 +530,23 @@ position: 0,0
|
||||
<<fade_out 1>>
|
||||
<<character_switch_image Peipei_1>>
|
||||
<<character_fade_in 1>>
|
||||
<color=\#00FFFF>佩佩</color>: ……(她一脸迷茫地坐起,看着我,眼神空洞)
|
||||
我: 你醒了。
|
||||
<color=\#00FFFF>佩佩</color>: 我好像……做了一个很遥远的梦。
|
||||
<color=\#00FFFF>佩佩</color>: 在梦里,我们的世界是有色彩的,我还记得那种淡淡的感觉,只是它太遥远了。
|
||||
我: 我们只是幸福罐头公司的两名普通员工。
|
||||
<color=\#00FFFF>佩佩</color>: 是啊,就像那些流水线上的罐头,随着浪潮被抛起,落下,最后在不起眼的角落里蒙上尘埃。
|
||||
<color=\#00FFFF>佩佩</color>: 认清形势,放弃幻想,不是么?
|
||||
<color=\#00FFFF>佩佩</color>: 很高兴是你陪我度过这些梦境,又陪我梦醒,医生。
|
||||
我: 佩佩……
|
||||
我: 快去完成你的工作吧。一切还没有结束。
|
||||
<color=\#00FFFF>佩佩</color>: 嗯。医生…
|
||||
<color=\#00FFFF>佩佩</color>: 再见了。
|
||||
我: 再见,佩佩。
|
||||
peipei: ……(她一脸迷茫地坐起,看着我,眼神空洞)
|
||||
me: 你醒了。
|
||||
peipei: 我好像……做了一个很遥远的梦。
|
||||
peipei: 在梦里,我们的世界是有色彩的,我还记得那种淡淡的感觉,只是它太遥远了。
|
||||
me: 我们只是幸福罐头公司的两名普通员工。
|
||||
peipei: 是啊,就像那些流水线上的罐头,随着浪潮被抛起,落下,最后在不起眼的角落里蒙上尘埃。
|
||||
peipei: 认清形势,放弃幻想,不是么?
|
||||
peipei: 很高兴是你陪我度过这些梦境,又陪我梦醒,医生。
|
||||
me: 佩佩……
|
||||
me: 快去完成你的工作吧。一切还没有结束。
|
||||
peipei: 嗯。医生…
|
||||
peipei: 再见了。
|
||||
me: 再见,佩佩。
|
||||
<<character_fade_Out 1>>
|
||||
我: 总算,结束了。
|
||||
我: 她再也不记得任何颜色了,她再也不记得任何颜色了……
|
||||
我: 我…我在做对的事情吗?
|
||||
me: 总算,结束了。
|
||||
me: 她再也不记得任何颜色了,她再也不记得任何颜色了……
|
||||
me: 我…我在做对的事情吗?
|
||||
===
|
||||
|
||||
|
||||
@@ -563,32 +563,32 @@ position: 55,-1208
|
||||
<<clear_tasks TaskManager>>
|
||||
<<add_task TaskManager "治好佩佩的色觉">>
|
||||
<<messagebox MessageBox "normal" "正在执行记忆色彩初始化……">>
|
||||
我: ……
|
||||
me: ……
|
||||
<<wait 1>>
|
||||
<<messagebox MessageBox "warning" "记忆色彩初始化被中断!">>
|
||||
<<wait 1>>
|
||||
我: 去你妈的吧!
|
||||
me: 去你妈的吧!
|
||||
<<add_task TaskManager "拆下自己的色觉芯片" "治好佩佩的色觉">>
|
||||
我: 然后……
|
||||
我: 也就意味着……我要为自己动手术了。
|
||||
me: 然后……
|
||||
me: 也就意味着……我要为自己动手术了。
|
||||
(占位)展示手术风险告知书
|
||||
->签名
|
||||
我: 呼……
|
||||
我: 来吧。
|
||||
me: 呼……
|
||||
me: 来吧。
|
||||
<<fadeIn ScreenEffect 1>>
|
||||
<<hide_dialog>>
|
||||
//<<fadeOut ScreenEffect 1>>
|
||||
我: 啊……
|
||||
me: 啊……
|
||||
<<flashRed ScreenEffect 0.2>>
|
||||
<<hide_dialog>>
|
||||
我: 啊!啊!!啊!!!
|
||||
me: 啊!啊!!啊!!!
|
||||
<<flashRed ScreenEffect 0.2>>
|
||||
<<hide_dialog>>
|
||||
<<fadeOut ScreenEffect 1>>
|
||||
我: 呼……呼……
|
||||
我: 自己给自己动手术,没办法关闭痛觉呢……
|
||||
我: 我的色觉还没有完全消失……它还残留在视觉的缓存上。
|
||||
我: 现在,该给佩佩装上我的色觉芯片了。
|
||||
me: 呼……呼……
|
||||
me: 自己给自己动手术,没办法关闭痛觉呢……
|
||||
me: 我的色觉还没有完全消失……它还残留在视觉的缓存上。
|
||||
me: 现在,该给佩佩装上我的色觉芯片了。
|
||||
<<complete_task TaskManager "拆下自己的色觉芯片">>
|
||||
<<add_task TaskManager "给佩佩安装自己的色觉芯片" "治好佩佩的色觉">>
|
||||
->安装色觉芯片
|
||||
@@ -596,8 +596,8 @@ position: 55,-1208
|
||||
<<Set_ViewVisualState ViewManager "ColorView" 0>>
|
||||
<<fade_out 1>>
|
||||
屏幕: 已识别到色觉芯片,正在等待校准
|
||||
我: 还有最后一件事情……色觉校准。
|
||||
我: 去视觉模块校准对应的颜色吧。时间不多了……色觉正在减弱。
|
||||
me: 还有最后一件事情……色觉校准。
|
||||
me: 去视觉模块校准对应的颜色吧。时间不多了……色觉正在减弱。
|
||||
//////色觉校准应该需要同时看到记忆和视觉?我按照这个思路写了。
|
||||
<<complete_task TaskManager "给佩佩安装自己的色觉芯片">>
|
||||
<<add_task TaskManager "校准色觉" "治好佩佩的色觉">>
|
||||
@@ -614,59 +614,59 @@ position: 55,-1208
|
||||
///上色选项
|
||||
//////DAY2应该是直接拿到三个记忆,不需要检索
|
||||
//////<<if $Color1Recover_PeipeiTalk3 == false && $Color2Recover_PeipeiTalk3 == false && $Color3Recover_PeipeiTalk3 == false>>
|
||||
我: 我需要让机器检索到关于颜色的记忆……我需要让佩佩的记忆转动起来。
|
||||
我: 我需要你。佩佩,醒醒!
|
||||
<color=\#00FFFF>佩佩</color>: 医生……
|
||||
me: 我需要让机器检索到关于颜色的记忆……我需要让佩佩的记忆转动起来。
|
||||
me: 我需要你。佩佩,醒醒!
|
||||
peipei: 医生……
|
||||
//->以某种方式尝试呼唤佩佩,此处略
|
||||
//佩佩说坚持住好像有点怪,是笔误么,我先注释了
|
||||
// <color=\#00FFFF>佩佩</color>: 坚持住……医生……我要……
|
||||
// <color=\#00FFFF>佩佩</color>: 坚持住。
|
||||
我: 佩佩!你能听到我说话么...
|
||||
<color=\#00FFFF>佩佩</color>: ......
|
||||
我: 不行,她还是太虚弱了,但是现在我真的需要她
|
||||
我: 我想想,有什么能帮助唤醒她呢?
|
||||
// peipei: 坚持住……医生……我要……
|
||||
// peipei: 坚持住。
|
||||
me: 佩佩!你能听到我说话么...
|
||||
peipei: ......
|
||||
me: 不行,她还是太虚弱了,但是现在我真的需要她
|
||||
me: 我想想,有什么能帮助唤醒她呢?
|
||||
//////感觉这里玩家自己想到会更有趣,可以做个选项
|
||||
我: 对了!让我们来聊聊关于颜色的回忆……
|
||||
me: 对了!让我们来聊聊关于颜色的回忆……
|
||||
//////帮我加下逻辑:玩家应该要可以按自由顺序问,问完全部3个继续
|
||||
->谈论关于红色
|
||||
我: 红色……你还记得你看到的夕阳吗?有人和你说他想一直坐在那儿……
|
||||
<color=\#00FFFF>佩佩</color>: 夕阳……我该让你多说些话的……
|
||||
<color=\#00FFFF>佩佩</color>: 我好想……医生……
|
||||
me: 红色……你还记得你看到的夕阳吗?有人和你说他想一直坐在那儿……
|
||||
peipei: 夕阳……我该让你多说些话的……
|
||||
peipei: 我好想……医生……
|
||||
//////<<search_memory MemoryManager "liuying1-3">>
|
||||
//////记忆里的对白需要以不同于台词的形式弹出
|
||||
我: 好的……红色,我来了。
|
||||
me: 好的……红色,我来了。
|
||||
//////需要夕阳真的是红色?和美术确认——我感觉是OK的?可能是看起来很特别的夕阳
|
||||
->渲染红色通道
|
||||
<<hide_dialog>>
|
||||
<<set_EyeColor EyeManager "red" "liuying1-1">>
|
||||
我: 呃啊,我的眼睛……
|
||||
me: 呃啊,我的眼睛……
|
||||
<<wait 1>>
|
||||
<<Set_Saturation EyeManager 0.75 1>>
|
||||
我: 感觉我视野里的饱和度正在降低……
|
||||
我: 这就是色觉再消失吗?这感觉太奇怪了。
|
||||
我: 我得抓紧时间了,接下来是……
|
||||
me: 感觉我视野里的饱和度正在降低……
|
||||
me: 这就是色觉再消失吗?这感觉太奇怪了。
|
||||
me: 我得抓紧时间了,接下来是……
|
||||
->谈论关于绿色
|
||||
我: 绿色……记得你那次写生吗?佩佩,你说你想要一辈子都画画。
|
||||
<color=\#00FFFF>佩佩</color>: 我记得,医生……好凉爽的风……
|
||||
me: 绿色……记得你那次写生吗?佩佩,你说你想要一辈子都画画。
|
||||
peipei: 我记得,医生……好凉爽的风……
|
||||
//////<<search_memory MemoryManager "liuying1-1">>
|
||||
我: 像海一样的草原,多美啊。草原上的风是什么气味的呢?
|
||||
我: 等着一切都结束了…等我们休假了,我也要去那里看看。
|
||||
me: 像海一样的草原,多美啊。草原上的风是什么气味的呢?
|
||||
me: 等着一切都结束了…等我们休假了,我也要去那里看看。
|
||||
->渲染绿色通道
|
||||
<<hide_dialog>>
|
||||
<<set_EyeColor EyeManager "green" "liuying1-2">>
|
||||
我: 又是这种感觉。其实…还挺柔和的。
|
||||
我: 呼…大概这下就不用开什么护眼模式了。
|
||||
me: 又是这种感觉。其实…还挺柔和的。
|
||||
me: 呼…大概这下就不用开什么护眼模式了。
|
||||
<<wait 1>>
|
||||
<<Set_Saturation EyeManager 0.55 1>>
|
||||
->谈论关于蓝色
|
||||
我: 佩佩,想想你小时候的那个病房。你一定看了很久的云吧?你不可能忘了那扇窗户的。
|
||||
<color=\#00FFFF>佩佩</color>: 医生……我会听话的,别让我……
|
||||
me: 佩佩,想想你小时候的那个病房。你一定看了很久的云吧?你不可能忘了那扇窗户的。
|
||||
peipei: 医生……我会听话的,别让我……
|
||||
//////<<search_memory MemoryManager "liuying1-2">>
|
||||
我: 就快结束了,佩佩。
|
||||
me: 就快结束了,佩佩。
|
||||
->渲染蓝色通道
|
||||
<<hide_dialog>>
|
||||
<<set_EyeColor EyeManager "blue" "liuying1-3">>
|
||||
我: 来吧,都来吧!我们就要成功了……
|
||||
me: 来吧,都来吧!我们就要成功了……
|
||||
<<wait 1>>
|
||||
<<Set_Saturation EyeManager 0.35 1>>
|
||||
<<wait 1>>
|
||||
@@ -675,69 +675,69 @@ position: 55,-1208
|
||||
<<EyeGetColor EyeManager>>
|
||||
<<set_EyeColor EyeManager "All">>
|
||||
<<Set_Saturation EyeManager 0 1>>
|
||||
我: 这是完成了吗?我已经……完全看不到颜色了。
|
||||
我: ……话说……
|
||||
me: 这是完成了吗?我已经……完全看不到颜色了。
|
||||
me: ……话说……
|
||||
->尝试想象颜色
|
||||
我: ……
|
||||
我: 很好,这才是我熟悉的健康状态,看来我没有什么怪病。哈哈……
|
||||
我: 我想我会怀念它的。但是…对不起,我想要治好我的病人。
|
||||
me: ……
|
||||
me: 很好,这才是我熟悉的健康状态,看来我没有什么怪病。哈哈……
|
||||
me: 我想我会怀念它的。但是…对不起,我想要治好我的病人。
|
||||
//////总感觉应该要提供机会给玩家->尝试想象颜色23333
|
||||
<<start_transition ViewManager "MainView">>
|
||||
<<complete_task TaskManager "校准色觉">>哈哈……
|
||||
屏幕: 重新启动中
|
||||
<color=\#00FFFF>佩佩</color>: 我这是在哪?医生……医生?
|
||||
peipei: 我这是在哪?医生……医生?
|
||||
<<complete_task TaskManager "治好佩佩的色觉">>
|
||||
<<task_moveOut TaskManager>>
|
||||
我: 别动,我要先把你的背板装好。
|
||||
me: 别动,我要先把你的背板装好。
|
||||
<<fade_in 1>>
|
||||
<<load_scene ClinicScene>>
|
||||
<<move_out_fix>>
|
||||
<<fade_out 1>>
|
||||
<<character_switch_image Peipei_1>>
|
||||
<<character_fade_in 1>>
|
||||
<color=\#00FFFF>佩佩</color>: 医生…对不起,我又回来了。我拖累了你……
|
||||
<color=\#00FFFF>佩佩</color>: 我应该想到的,他们不会这样轻易地解脱我……
|
||||
我: 佩佩,睁开眼睛,仔细看看吧。
|
||||
<color=\#00FFFF>佩佩</color>: 医生……你眼睛流出来的蓝色的是……冷却液吗?
|
||||
我: 啊……
|
||||
<color=\#00FFFF>佩佩</color>: 咦…蓝色?为什么……?
|
||||
<color=\#00FFFF>佩佩</color>: 难道我的色觉…他们没有……
|
||||
我: 不,是我找到办法了。既保住了你的色觉,又恢复了你的UF模块。
|
||||
我: 佩佩,结束了,你恢复健康了。
|
||||
<color=\#00FFFF>佩佩</color>: 我…我还以为我肯定要死了。
|
||||
我: 是一个有点难找的bug,你知道的,公司那帮人的维护日志太乱了,遗漏了这个bug。
|
||||
我: 已经没问题了!
|
||||
<color=\#00FFFF>佩佩</color>: 我以为……
|
||||
我: 不,已经没事了…已经没事了,佩佩。
|
||||
<color=\#00FFFF>佩佩</color>: 医生…你还好吗?
|
||||
我: 先别担心我了。你的工作还没有完成,这一切还没有结束。
|
||||
<color=\#00FFFF>佩佩</color>: 你说的对…医生。我还有一点点时间……
|
||||
我: 所以,快去吧!完成你的工作,不要让我的…白费。
|
||||
<color=\#00FFFF>佩佩</color>: 我会的,医生……这一次,我不会让你失望的。
|
||||
peipei: 医生…对不起,我又回来了。我拖累了你……
|
||||
peipei: 我应该想到的,他们不会这样轻易地解脱我……
|
||||
me: 佩佩,睁开眼睛,仔细看看吧。
|
||||
peipei: 医生……你眼睛流出来的蓝色的是……冷却液吗?
|
||||
me: 啊……
|
||||
peipei: 咦…蓝色?为什么……?
|
||||
peipei: 难道我的色觉…他们没有……
|
||||
me: 不,是我找到办法了。既保住了你的色觉,又恢复了你的UF模块。
|
||||
me: 佩佩,结束了,你恢复健康了。
|
||||
peipei: 我…我还以为我肯定要死了。
|
||||
me: 是一个有点难找的bug,你知道的,公司那帮人的维护日志太乱了,遗漏了这个bug。
|
||||
me: 已经没问题了!
|
||||
peipei: 我以为……
|
||||
me: 不,已经没事了…已经没事了,佩佩。
|
||||
peipei: 医生…你还好吗?
|
||||
me: 先别担心我了。你的工作还没有完成,这一切还没有结束。
|
||||
peipei: 你说的对…医生。我还有一点点时间……
|
||||
me: 所以,快去吧!完成你的工作,不要让我的…白费。
|
||||
peipei: 我会的,医生……这一次,我不会让你失望的。
|
||||
<<character_fade_Out 1>>
|
||||
我: 总算,结束了。
|
||||
我: 我看不到颜色了,我看不到颜色了。
|
||||
我: 我…我在做对的事情吗?
|
||||
me: 总算,结束了。
|
||||
me: 我看不到颜色了,我看不到颜色了。
|
||||
me: 我…我在做对的事情吗?
|
||||
<<fade_in 1>>
|
||||
感谢您游玩《艾比斯之梦》的demo-佩佩切片,流程到此终止
|
||||
本demo为早期验证版本,其中文本,交互,画面均为过程版
|
||||
您的反馈和建议对我们至关重要
|
||||
如果您不知道在何处反馈,欢迎微信联系:15209116298 QQ:781230111
|
||||
谢谢!(退出游戏Alt F4)
|
||||
// <color=\#00FFFF>佩佩</color>: 医生?!难道你……
|
||||
// <color=\#00FFFF>佩佩</color>: 不…不不不……我不……
|
||||
// peipei: 医生?!难道你……
|
||||
// peipei: 不…不不不……我不……
|
||||
// ->你看到色彩,我治好我的病人,比什么都重要。
|
||||
// <color=\#00FFFF>佩佩</color>: 医生……医生……我何德何能让你做到这个份上。
|
||||
// <color=\#00FFFF>佩佩</color>: 领导也好,同事也罢,大家都是罐头公司里的螺丝钉,包括我。
|
||||
// <color=\#00FFFF>佩佩</color>: 可是你,只有你,从来不把我看作一颗螺丝钉……
|
||||
// <color=\#00FFFF>佩佩</color>: 谢谢你,谢谢你,让我知道原来世上还有你这样的人。
|
||||
// <color=\#00FFFF>佩佩</color>: 不要忘了看我的画作哦,医生,那也是我从你眼中看到的美丽世界。
|
||||
// peipei: 医生……医生……我何德何能让你做到这个份上。
|
||||
// peipei: 领导也好,同事也罢,大家都是罐头公司里的螺丝钉,包括我。
|
||||
// peipei: 可是你,只有你,从来不把我看作一颗螺丝钉……
|
||||
// peipei: 谢谢你,谢谢你,让我知道原来世上还有你这样的人。
|
||||
// peipei: 不要忘了看我的画作哦,医生,那也是我从你眼中看到的美丽世界。
|
||||
// ->如果治不好你,我就要被公司回收了。
|
||||
// <color=\#00FFFF>佩佩</color>: 医生……怎么会……我原本不想这样的……
|
||||
// <color=\#00FFFF>佩佩</color>: 真的非常抱歉,我的鲁莽让你不得不做出牺牲。
|
||||
// <color=\#00FFFF>佩佩</color>: 你的眼睛……天哪,你要看到和我一样的世界了……医生,好难过
|
||||
// <color=\#00FFFF>佩佩</color>: 谢谢你把你珍贵的东西借给了我,我不会让你失望的。
|
||||
// <color=\#00FFFF>佩佩</color>: 不要忘了看我的画作哦,医生,那也是我从你眼中看到的美丽世界。
|
||||
// peipei: 医生……怎么会……我原本不想这样的……
|
||||
// peipei: 真的非常抱歉,我的鲁莽让你不得不做出牺牲。
|
||||
// peipei: 你的眼睛……天哪,你要看到和我一样的世界了……医生,好难过
|
||||
// peipei: 谢谢你把你珍贵的东西借给了我,我不会让你失望的。
|
||||
// peipei: 不要忘了看我的画作哦,医生,那也是我从你眼中看到的美丽世界。
|
||||
//////理论上我需要提示佩佩需要完成工作,这里先不写了
|
||||
===
|
||||
|
||||
|
||||
@@ -219,6 +219,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: "\u4E3B\u573A\u666F\u4E2D\u95F4\u7248\u5BFC\u51FA20240904"
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -8653719598885068355, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -7552582706839291426, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 0.3
|
||||
@@ -271,10 +275,18 @@ PrefabInstance:
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -6333501094799134939, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -351895798359867480, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Back
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: -351895798359867480, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 977570898292676981, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Front
|
||||
@@ -285,19 +297,27 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1755460041368365272, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7244954253389612693, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_Size.x
|
||||
value: 20.323174
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7244954253389612693, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_Size.y
|
||||
value: 28.179998
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7244954253389612693, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_Sprite
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
objectReference: {fileID: 21300000, guid: 7c628e32668107e489c7e3cea395a4b0, type: 3}
|
||||
- target: {fileID: 7244954253389612693, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_Color.a
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7244954253389612693, guid: 5ab8b77db5196c64d992eb06b9e92934, type: 3}
|
||||
propertyPath: m_WasSpriteAssigned
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
@@ -511,7 +531,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
m_IsActive: 1
|
||||
--- !u!212 &1929571532
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
+483
-766
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aaccc268908358449a45c394f36fd2d8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,45 @@
|
||||
namespace AibisDream.Config
|
||||
{
|
||||
public class Character
|
||||
{
|
||||
public string Key { get; set; }
|
||||
public string Cn { get; set; }
|
||||
public string NameColor { get; set; }
|
||||
public string HeadPicPath { get; set; }
|
||||
public string VoicePath { get; set; }
|
||||
public ActorRole Role { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 避免干扰,复制结构体出来使用
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public CharacterVo GetStructVo()
|
||||
{
|
||||
CharacterVo vo;
|
||||
vo.key = Key;
|
||||
vo.cn = Cn;
|
||||
vo.nameColor = NameColor;
|
||||
vo.headPicPath = HeadPicPath;
|
||||
vo.voicePath = VoicePath;
|
||||
vo.role = Role;
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
|
||||
public struct CharacterVo
|
||||
{
|
||||
public string key;
|
||||
public string cn;
|
||||
public string nameColor;
|
||||
public string headPicPath;
|
||||
public string voicePath;
|
||||
public ActorRole role;
|
||||
}
|
||||
|
||||
public enum ActorRole
|
||||
{
|
||||
Aside,
|
||||
Player,
|
||||
MainActor
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed401d6b60a1c51448b66d538c946090
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,71 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AibisDream.Utility;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.Config
|
||||
{
|
||||
public class ConfigUtil : SingletonBase<ConfigUtil>
|
||||
{
|
||||
private const string CharacterConfigPath = "/Config/character.csv";
|
||||
private const string BaseConfigPath = "/Config/base_config.csv";
|
||||
|
||||
private Dictionary<string, string> _baseConfigDic;
|
||||
private Dictionary<string, Character> _characters;
|
||||
|
||||
/// <summary>
|
||||
/// 用于单例模式
|
||||
/// </summary>
|
||||
private ConfigUtil() {}
|
||||
|
||||
public void InitConfig()
|
||||
{
|
||||
InitBaseConfig();
|
||||
InitCharacterConfig();
|
||||
}
|
||||
|
||||
private void InitBaseConfig()
|
||||
{
|
||||
var baseList = CsvUtil.Read(Application.streamingAssetsPath + BaseConfigPath);
|
||||
if (baseList.Count <= 0)
|
||||
{
|
||||
Debug.Log("基础配置不存在");
|
||||
}
|
||||
|
||||
// 基础配置只有key和value
|
||||
_baseConfigDic = new Dictionary<string, string>();
|
||||
foreach (var arr in baseList)
|
||||
{
|
||||
_baseConfigDic.Add(arr[0], arr[1]);
|
||||
}
|
||||
}
|
||||
|
||||
private void InitCharacterConfig()
|
||||
{
|
||||
var characterList = CsvUtil.ReadAsBean<Character>(Application.streamingAssetsPath + CharacterConfigPath);
|
||||
_characters = characterList.ToDictionary(item => item.Key, item => item);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按key获取角色预设
|
||||
/// </summary>
|
||||
/// <param name="key">key</param>
|
||||
/// <param name="character">角色配置</param>
|
||||
/// <returns>是否能获取</returns>
|
||||
public bool TryGetCharacter(string key, out Character character)
|
||||
{
|
||||
return _characters.TryGetValue(key, out character);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按key获取基础配置
|
||||
/// </summary>
|
||||
/// <param name="key">key</param>
|
||||
/// <param name="value">配置项</param>
|
||||
/// <returns>是否能获取</returns>
|
||||
public bool TryGetBaseConfig(string key, out string value)
|
||||
{
|
||||
return _baseConfigDic.TryGetValue(key, out value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb555b831ee0c8f4aa4a5a2e1c8d4f39
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using AibisDream.Utility;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream
|
||||
@@ -6,24 +7,24 @@ namespace AibisDream
|
||||
public class CommandOptionView : DialogueViewBase
|
||||
{
|
||||
// 进入指令选项模式
|
||||
private bool isInCommand;
|
||||
private string commandName;
|
||||
private bool _isInCommand;
|
||||
private string _commandName;
|
||||
|
||||
public override void RunLine(LocalizedLine dialogueLine, Action onDialogueLineFinished)
|
||||
{
|
||||
// 判断选项选项行
|
||||
if (dialogueLine.Text.IsOptionAttrLine())
|
||||
{
|
||||
isInCommand = true;
|
||||
_isInCommand = true;
|
||||
base.RunLine(dialogueLine, onDialogueLineFinished);
|
||||
return;
|
||||
}
|
||||
// 判断是否进入Command状态
|
||||
isInCommand = dialogueLine.Text.TryGetCommandAttr(out var curCommandName);
|
||||
if (isInCommand)
|
||||
_isInCommand = dialogueLine.Text.TryGetCommandAttr(out var curCommandName);
|
||||
if (_isInCommand)
|
||||
{
|
||||
// 保存指令
|
||||
commandName = curCommandName;
|
||||
_commandName = curCommandName;
|
||||
// 进入下一步
|
||||
onDialogueLineFinished.Invoke();
|
||||
}
|
||||
@@ -36,7 +37,7 @@ namespace AibisDream
|
||||
public override void RunOptions(DialogueOption[] dialogueOptions, Action<int> onOptionSelected)
|
||||
{
|
||||
// 非指令直接跳过
|
||||
if (!isInCommand)
|
||||
if (!_isInCommand)
|
||||
{
|
||||
base.RunOptions(dialogueOptions, onOptionSelected);
|
||||
return;
|
||||
@@ -45,7 +46,7 @@ namespace AibisDream
|
||||
DialogController.Instance.IsTalking = false;
|
||||
// 传输选项
|
||||
YarnOption[] options = YarnOption.GeneOptions(dialogueOptions, onOptionSelected);
|
||||
DialogController.Instance.InvokeOptionCommand(commandName, options);
|
||||
DialogController.Instance.InvokeOptionCommand(_commandName, options);
|
||||
}
|
||||
|
||||
public override void InterruptLine(LocalizedLine dialogueLine, Action onDialogueLineFinished)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Utility;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using Yarn.Unity;
|
||||
@@ -11,12 +12,13 @@ namespace AibisDream
|
||||
public class DialogController : Singleton<DialogController>
|
||||
{
|
||||
private const string BookManager = "BookManager";
|
||||
|
||||
private DialogueRunner dialogueRunner;
|
||||
|
||||
private DialogueRunner dialogueRunner;
|
||||
private VariableStorageBehaviour _variableStorage;
|
||||
|
||||
private Dictionary<string, Action<YarnOption[]>> commandMap = new();
|
||||
private readonly Dictionary<string, Action<YarnOption[]>> commandMap = new();
|
||||
|
||||
# region controller状态标识
|
||||
|
||||
private bool _isTalking;
|
||||
|
||||
@@ -39,13 +41,15 @@ namespace AibisDream
|
||||
}
|
||||
|
||||
// 对话框被阻塞时不能继续对话框交互
|
||||
public bool IsBlock { get; set; }
|
||||
public bool IsBlock { get; private set; }
|
||||
|
||||
public bool quickRunMode;
|
||||
|
||||
# endregion
|
||||
|
||||
public static UnityAction OnDialogueStart;
|
||||
public static UnityAction OnDialogueComplete;
|
||||
|
||||
public bool quickRunMode;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
dialogueRunner = GetComponentInChildren<DialogueRunner>();
|
||||
@@ -63,6 +67,7 @@ namespace AibisDream
|
||||
// 对话结束时切下一个SO
|
||||
dialogueRunner.onDialogueComplete.AddListener(() =>
|
||||
{
|
||||
DialogCanvasManager.Instance.SwitchDialogView(DialogViewType.Bubble);
|
||||
StartCoroutine(GameLoopManager.Instance.NextSceneSo());
|
||||
});
|
||||
}
|
||||
@@ -97,6 +102,7 @@ namespace AibisDream
|
||||
/// <param name="yarnProject">Yarn组</param>
|
||||
public void StartDialog(YarnProject yarnProject)
|
||||
{
|
||||
dialogueRunner.VariableStorage.Clear();
|
||||
dialogueRunner.SetProject(yarnProject);
|
||||
dialogueRunner.StartDialogue("Start");
|
||||
}
|
||||
@@ -135,7 +141,7 @@ namespace AibisDream
|
||||
{
|
||||
Debug.Log($"命令 {commandName} 已经存在,将被替换");
|
||||
}
|
||||
|
||||
|
||||
commandMap[commandName] = commandAction;
|
||||
}
|
||||
|
||||
@@ -210,11 +216,12 @@ namespace AibisDream
|
||||
{
|
||||
HideDialog();
|
||||
//yield return MainUIController.Instance.FadeInSync(duration);
|
||||
Camera.main.orthographicSize=5;
|
||||
Camera.main.transform.position=new Vector3(0,0,-10);
|
||||
Camera.main.orthographicSize = 5;
|
||||
Camera.main.transform.position = new Vector3(0, 0, -10);
|
||||
yield return SceneLoader.Instance.LoadSceneAsync(sceneName);
|
||||
//yield return new WaitForSeconds(1f);
|
||||
//yield return MainUIController.Instance.FadeOutSync(duration);
|
||||
DialogCanvasManager.Instance.SwitchDialogView(sceneName == "ClinicScene"
|
||||
? DialogViewType.Bubble
|
||||
: DialogViewType.OldBox);
|
||||
}
|
||||
|
||||
[YarnCommand("unload_scene")]
|
||||
@@ -226,7 +233,7 @@ namespace AibisDream
|
||||
[YarnCommand("hide_dialog")]
|
||||
public static void HideDialog()
|
||||
{
|
||||
DialogUiViewer.Instance.HideDialog();
|
||||
DialogCanvasManager.GetCurView().HideDialog();
|
||||
}
|
||||
|
||||
[YarnCommand("fade_in")]
|
||||
@@ -246,24 +253,25 @@ namespace AibisDream
|
||||
{
|
||||
return MainUIController.Instance.ShowObj(picName);
|
||||
}
|
||||
|
||||
|
||||
[YarnCommand("hide_obj")]
|
||||
public static IEnumerator HideObj()
|
||||
{
|
||||
return MainUIController.Instance.HideObj();
|
||||
}
|
||||
|
||||
[YarnCommand("move_to_fix")]
|
||||
public static IEnumerator Move_to_fix()
|
||||
public static IEnumerator MoveToFix()
|
||||
{
|
||||
bool isCompleted = false;
|
||||
Sequence s = DOTween.Sequence();
|
||||
s.Append(Camera.main.transform.DOMove(new UnityEngine.Vector3(6.8f, 0, -10), 2f))
|
||||
.OnComplete(() =>
|
||||
{
|
||||
// 动画完成后的反馈操作
|
||||
Debug.Log("Move_to_fix sequence completed.");
|
||||
isCompleted = true;
|
||||
});
|
||||
.OnComplete(() =>
|
||||
{
|
||||
// 动画完成后的反馈操作
|
||||
Debug.Log("Move_to_fix sequence completed.");
|
||||
isCompleted = true;
|
||||
});
|
||||
|
||||
// 等待动画完成
|
||||
yield return new WaitUntil(() => isCompleted);
|
||||
@@ -271,15 +279,22 @@ namespace AibisDream
|
||||
// 动画完成后的其他操作
|
||||
Debug.Log("Continuing after Move_to_fix sequence.");
|
||||
}
|
||||
|
||||
[YarnCommand("move_out_fix")]
|
||||
public static void Move_out_fix()
|
||||
public static void MoveOutFix()
|
||||
{
|
||||
Camera.main.transform.position=new UnityEngine.Vector3(6.8f, 0, -10);
|
||||
Camera.main.transform.position = new UnityEngine.Vector3(6.8f, 0, -10);
|
||||
Sequence s = DOTween.Sequence();
|
||||
//s.AppendInterval(0.5f);
|
||||
s.Append(Camera.main.transform.DOMove(new UnityEngine.Vector3(0, 0, -10), 2f));
|
||||
}
|
||||
|
||||
|
||||
[YarnCommand("switch_dialog_view")]
|
||||
public static void SwitchDialogView(string viewName)
|
||||
{
|
||||
DialogCanvasManager.Instance.SwitchDialogView(Enum.Parse<DialogViewType>(viewName));
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,11 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using AibisDream.Utility;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public class LineView : DialogueViewBase
|
||||
{
|
||||
private const string AutoNext = "auto_next";
|
||||
|
||||
// 进入指令选项模式
|
||||
private bool _isInCommand;
|
||||
|
||||
@@ -17,11 +15,11 @@ namespace AibisDream
|
||||
|
||||
if (_isInCommand)
|
||||
{
|
||||
DialogUiViewer.Instance.HideDialog();
|
||||
DialogCanvasManager.GetCurView().HideDialog();
|
||||
base.RunLine(dialogueLine, onDialogueLineFinished);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
HandleLineOutput(dialogueLine, onDialogueLineFinished);
|
||||
|
||||
if (DialogController.Instance.quickRunMode)
|
||||
@@ -35,32 +33,21 @@ namespace AibisDream
|
||||
// 对话系统正在交谈状态
|
||||
DialogController.Instance.IsTalking = true;
|
||||
|
||||
// 解析LocalizedLine
|
||||
if (dialogueLine.Metadata != null && dialogueLine.Metadata.Contains(AutoNext))
|
||||
{
|
||||
// 自动跳过
|
||||
DialogUiViewer.Instance.ShowAutoLine(dialogueLine.TextWithoutCharacterName.Text,
|
||||
dialogueLine.CharacterName, onDialogueLineFinished);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 需要玩家点击
|
||||
DialogUiViewer.Instance.ShowLine(dialogueLine.TextWithoutCharacterName.Text,
|
||||
dialogueLine.CharacterName, onDialogueLineFinished);
|
||||
}
|
||||
DialogCanvasManager.GetCurView().ShowLine(dialogueLine.TextWithoutCharacterName.Text,
|
||||
dialogueLine.GetCharacterVo(), onDialogueLineFinished, dialogueLine.IsAutoSkipLine());
|
||||
}
|
||||
|
||||
public override void RunOptions(DialogueOption[] dialogueOptions, Action<int> onOptionSelected)
|
||||
{
|
||||
if (_isInCommand)
|
||||
{
|
||||
DialogUiViewer.Instance.HideDialog();
|
||||
DialogCanvasManager.GetCurView().HideDialog();
|
||||
base.RunOptions(dialogueOptions, onOptionSelected);
|
||||
return;
|
||||
}
|
||||
|
||||
DialogController.Instance.IsTalking = true;
|
||||
DialogUiViewer.Instance.ShowOptions(dialogueOptions, onOptionSelected);
|
||||
DialogCanvasManager.GetCurView().ShowOptions(dialogueOptions, onOptionSelected);
|
||||
}
|
||||
|
||||
public override void InterruptLine(LocalizedLine dialogueLine, Action onDialogueLineFinished)
|
||||
@@ -84,13 +71,11 @@ namespace AibisDream
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!DialogUiViewer.Instance.TrySkipLine())
|
||||
|
||||
if (!DialogCanvasManager.GetCurView().TrySkipLine())
|
||||
{
|
||||
DialogUiViewer.Instance.AfterEndLine();
|
||||
requestInterrupt.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,8 +10,8 @@ public class ScreenEffectManager : MonoBehaviour
|
||||
{
|
||||
public static ScreenEffectManager Instance { get; private set; }
|
||||
|
||||
public Image blackoutPanel; // 黑屏面板
|
||||
public Image redFlashPanel; // 红色闪烁面板
|
||||
public Image blackoutPanel; // 黑屏面板
|
||||
public Image redFlashPanel; // 红色闪烁面板
|
||||
private float shakeDuration = 0.5f; // 震屏持续时间
|
||||
private float shakeIntensity = 0.04f; // 震屏强度
|
||||
|
||||
@@ -54,7 +54,8 @@ public class ScreenEffectManager : MonoBehaviour
|
||||
[YarnCommand("shakeScreen")]
|
||||
public IEnumerator ShakeScreen()
|
||||
{
|
||||
yield return Camera.main.transform.DOPunchPosition(new Vector3(1, 0, 0) * shakeIntensity, shakeDuration, 8, 1f).WaitForCompletion();
|
||||
yield return Camera.main.transform.DOPunchPosition(new Vector3(1, 0, 0) * shakeIntensity, shakeDuration, 8, 1f)
|
||||
.WaitForCompletion();
|
||||
}
|
||||
|
||||
// 黑屏淡入淡出效果
|
||||
@@ -67,7 +68,8 @@ public class ScreenEffectManager : MonoBehaviour
|
||||
//fadeInSequence.AppendInterval(waitTime);
|
||||
yield return fadeInSequence.WaitForCompletion();
|
||||
}
|
||||
[YarnCommand("fadeOut")]
|
||||
|
||||
[YarnCommand("fadeOut")]
|
||||
public IEnumerator FadeOut(float duration)
|
||||
{
|
||||
Sequence fadeOutSequence = DOTween.Sequence();
|
||||
@@ -91,28 +93,24 @@ public class ScreenEffectManager : MonoBehaviour
|
||||
}
|
||||
|
||||
// 动态调整饱和度
|
||||
public Tween TweenSaturation(float targetSaturation, float duration)
|
||||
{
|
||||
if (colorAdjustments != null)
|
||||
public Tween TweenSaturation(float targetSaturation, float duration)
|
||||
{
|
||||
// 使用 DOTween 创建一个饱和度过渡动画
|
||||
Tween tween = DOTween.To(
|
||||
() => colorAdjustments.saturation.value, // 获取当前饱和度值
|
||||
x => colorAdjustments.saturation.value = x, // 设置新的饱和度值
|
||||
targetSaturation, // 目标饱和度值
|
||||
duration // 过渡持续时间
|
||||
);
|
||||
if (colorAdjustments != null)
|
||||
{
|
||||
// 使用 DOTween 创建一个饱和度过渡动画
|
||||
Tween tween = DOTween.To(
|
||||
() => colorAdjustments.saturation.value, // 获取当前饱和度值
|
||||
x => colorAdjustments.saturation.value = x, // 设置新的饱和度值
|
||||
targetSaturation, // 目标饱和度值
|
||||
duration // 过渡持续时间
|
||||
);
|
||||
|
||||
return tween; // 返回 Tween 对象
|
||||
return tween; // 返回 Tween 对象
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("ColorAdjustments settings not found.");
|
||||
return null; // 如果找不到设置,返回 null
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("ColorAdjustments settings not found.");
|
||||
return null; // 如果找不到设置,返回 null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections;
|
||||
using AibisDream.Config;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
|
||||
@@ -23,6 +24,8 @@ namespace AibisDream
|
||||
|
||||
public void Start()
|
||||
{
|
||||
ConfigUtil.Instance.InitConfig();
|
||||
|
||||
if (runMode == RunMode.Test)
|
||||
{
|
||||
MainUIController.Instance.TVFadeOut(1);
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using DG.Tweening;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Utility;
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
@@ -46,7 +44,7 @@ namespace AibisDream
|
||||
{
|
||||
get
|
||||
{
|
||||
if (childGear == null)
|
||||
if (!childGear)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -159,11 +157,11 @@ namespace AibisDream
|
||||
public static bool IsShaftConnected(Shaft shaft1, Shaft shaft2)
|
||||
{
|
||||
// 如果轴上无齿轮就不计算
|
||||
if (shaft1 == null || shaft2 == null)
|
||||
if (!shaft1 || !shaft2)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (shaft1.childGear == null || shaft2.childGear == null)
|
||||
if (!shaft1.childGear || !shaft2.childGear)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 626c63a530654b14f9c7a3be634dd0b5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,17 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public class DialogBox : DialogBoxBase
|
||||
{
|
||||
[SerializeField] protected GameObject choiceButton;
|
||||
|
||||
protected override void LoadChoiceButton()
|
||||
{
|
||||
choiceButtonPrefab = choiceButton;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 51f2233614aba944f9b2dab3d5af433b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,204 @@
|
||||
using System;
|
||||
using AibisDream.Config;
|
||||
using AibisDream.Utility;
|
||||
using Febucci.UI;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public abstract class DialogBoxBase : MonoBehaviour, IDialogView
|
||||
{
|
||||
#region box组件名称
|
||||
|
||||
private const string ActorName = "Actor Name";
|
||||
private const string DialogText = "Dialog Text";
|
||||
private const string NextArray = "Next Array";
|
||||
private const string ChoiceBox = "Choice Box";
|
||||
|
||||
#endregion
|
||||
|
||||
#region box组件
|
||||
|
||||
protected TypewriterByCharacter dialogText;
|
||||
protected TextMeshProUGUI actorName;
|
||||
protected GameObject nextArray;
|
||||
protected GameObject choiceBox;
|
||||
|
||||
#endregion
|
||||
|
||||
private bool _skipLineDelay;
|
||||
[Header("跳过阻塞延迟时间/ms")]
|
||||
[SerializeField] private int delayTime = 300;
|
||||
|
||||
protected GameObject choiceButtonPrefab;
|
||||
|
||||
protected virtual void Awake()
|
||||
{
|
||||
LoadChoiceButton();
|
||||
InitComponents();
|
||||
AddSomeListener();
|
||||
}
|
||||
|
||||
private void AddSomeListener()
|
||||
{
|
||||
// 对话显示后有一段延时不可跳过
|
||||
dialogText.onTypewriterStart.AddListener(() =>
|
||||
{
|
||||
_skipLineDelay = true;
|
||||
CommonUtil.Delay(delayTime, () => { _skipLineDelay = false; });
|
||||
});
|
||||
}
|
||||
|
||||
#region 初始化
|
||||
|
||||
protected virtual void LoadChoiceButton()
|
||||
{
|
||||
Debug.Log("无选项对话框");
|
||||
}
|
||||
|
||||
private void InitComponents()
|
||||
{
|
||||
actorName = transform.Find(ActorName)?.gameObject.GetComponent<TextMeshProUGUI>();
|
||||
dialogText = transform.Find(DialogText)?.gameObject.GetComponent<TypewriterByCharacter>();
|
||||
nextArray = transform.Find(NextArray)?.gameObject;
|
||||
choiceBox = transform.Find(ChoiceBox)?.gameObject;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏对话盒
|
||||
/// </summary>
|
||||
public void HideDialog()
|
||||
{
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示对话
|
||||
/// </summary>
|
||||
/// <param name="dialogLine">对话内容</param>
|
||||
/// <param name="character">角色内容</param>
|
||||
/// <param name="nextStep">下一步</param>
|
||||
/// <param name="isAutoSkip">是否自动跳过,默认为false</param>
|
||||
public virtual void ShowLine(string dialogLine, CharacterVo character, Action nextStep, bool isAutoSkip = false)
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
// 没有dialogText说明不能显示对话,直接跳过
|
||||
if (!dialogText)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 把原有对话清掉
|
||||
ClearBox();
|
||||
dialogText.gameObject.SetActive(true);
|
||||
choiceBox?.SetActive(false);
|
||||
|
||||
// 显示内容
|
||||
ShowActorName(character);
|
||||
dialogText.ShowText(dialogLine);
|
||||
|
||||
// TODO 如果有头像的对话框要加入头像处理
|
||||
|
||||
// 自动跳过的回调很难独立Remove,只能全部清空再注册,下策
|
||||
dialogText.onTextShowed.RemoveAllListeners();
|
||||
dialogText.onTextShowed.AddListener(() => nextArray.gameObject.SetActive(true));
|
||||
|
||||
// 执行自动跳过结局
|
||||
if (isAutoSkip)
|
||||
{
|
||||
dialogText.onTextShowed.AddListener(() => CommonUtil.Delay(200, nextStep));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 展示选项
|
||||
/// </summary>
|
||||
/// <param name="dialogueOptions">对话选项</param>
|
||||
/// <param name="onOptionSelected">选项选择</param>
|
||||
public virtual void ShowOptions(DialogueOption[] dialogueOptions, Action<int> onOptionSelected)
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
// 没有选择框直接不显示选项
|
||||
if (!choiceBox)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 把原有对话清掉
|
||||
ClearBox();
|
||||
choiceBox.SetActive(true);
|
||||
dialogText.gameObject.SetActive(false);
|
||||
|
||||
// 销毁原来的按钮
|
||||
foreach (Transform child in choiceBox.transform)
|
||||
{
|
||||
Destroy(child.gameObject);
|
||||
}
|
||||
|
||||
// 生成新按钮
|
||||
foreach (DialogueOption option in dialogueOptions)
|
||||
{
|
||||
if (!option.IsAvailable) continue;
|
||||
|
||||
var choiceInstance = Instantiate(choiceButtonPrefab, choiceBox.transform);
|
||||
choiceInstance.GetComponentInChildren<TextMeshProUGUI>().text =
|
||||
option.Line.TextWithoutCharacterName.Text;
|
||||
choiceInstance.GetComponent<Button>().onClick
|
||||
.AddListener(() => onOptionSelected.Invoke(option.DialogueOptionID));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 尝试跳过对话
|
||||
/// true说明成功快进了对话显示
|
||||
/// false说明对话已经显示完成了,可以跳过
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public virtual bool TrySkipLine()
|
||||
{
|
||||
if (_skipLineDelay)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (dialogText.isShowingText)
|
||||
{
|
||||
dialogText.SkipTypewriter();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
nextArray.gameObject.SetActive(false);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearBox()
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
dialogText?.ShowText("");
|
||||
nextArray?.SetActive(false);
|
||||
if (!actorName) actorName.text = "";
|
||||
}
|
||||
|
||||
private void ShowActorName(CharacterVo character)
|
||||
{
|
||||
if (!actorName) return;
|
||||
|
||||
if (string.IsNullOrEmpty(character.nameColor))
|
||||
{
|
||||
actorName.text = character.cn;
|
||||
}
|
||||
else
|
||||
{
|
||||
var showStr = $"<color={character.nameColor}>{character.cn}</color>";
|
||||
actorName.text = showStr;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a4b8d325dce1b64980f8fd2ff77c571
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public class DialogBubble : DialogBoxBase
|
||||
{
|
||||
// 气泡功能比较简单似乎不需要加别的
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d43fa24173f81ea4ea102be91896826e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using AibisDream.Config;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public class DialogBubbleViewer : MonoBehaviour, IDialogView
|
||||
{
|
||||
private const string PlayerBubble = "Player Bubble";
|
||||
private const string ActorBubble = "Actor Bubble";
|
||||
private const string NormalBox = "Normal Box";
|
||||
|
||||
private IDialogView _normalBox;
|
||||
private IDialogView _playerBubble;
|
||||
private IDialogView _actorBubble;
|
||||
// 应该会有自定义位置的泡泡,但目前还没想好怎么做
|
||||
private Dictionary<string, IDialogView> _customBubblePool = new();
|
||||
|
||||
private List<IDialogView> _dialogViews;
|
||||
|
||||
private IDialogView _currentView;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
private void Init()
|
||||
{
|
||||
_normalBox = transform.Find(NormalBox).GetComponent<IDialogView>();
|
||||
_playerBubble = transform.Find(PlayerBubble).GetComponent<IDialogView>();
|
||||
_actorBubble = transform.Find(ActorBubble).GetComponent<IDialogView>();
|
||||
|
||||
_dialogViews = new List<IDialogView> { _normalBox, _playerBubble, _actorBubble };
|
||||
_dialogViews.ForEach(item => item.HideDialog());
|
||||
}
|
||||
|
||||
public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, bool isAutoSkip = false)
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
// 根据角色信息气泡
|
||||
_currentView = SelectBubbleByCharacter(character);
|
||||
// 处理其他泡泡
|
||||
ProcessOtherBox();
|
||||
// 显示对话
|
||||
_currentView.ShowLine(dialogLine, character, nextStep, isAutoSkip);
|
||||
}
|
||||
|
||||
public void ShowOptions(DialogueOption[] dialogueOptions, Action<int> onOptionSelected)
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
_currentView = _normalBox;
|
||||
// 目前只有正常Box可以展示选项
|
||||
// 处理其他泡泡
|
||||
ProcessOtherBox();
|
||||
|
||||
// 展示选项
|
||||
_normalBox.ShowOptions(dialogueOptions, onOptionSelected);
|
||||
}
|
||||
|
||||
public void HideDialog()
|
||||
{
|
||||
gameObject.SetActive(false);
|
||||
// 隐藏整个对话组件
|
||||
_dialogViews?.ForEach(item => item.HideDialog());
|
||||
}
|
||||
|
||||
public bool TrySkipLine()
|
||||
{
|
||||
return _currentView == null || _currentView.TrySkipLine();
|
||||
}
|
||||
|
||||
private IDialogView SelectBubbleByCharacter(CharacterVo characterVo)
|
||||
{
|
||||
return characterVo.role switch
|
||||
{
|
||||
ActorRole.Player => _playerBubble,
|
||||
ActorRole.MainActor => _actorBubble,
|
||||
ActorRole.Aside => _normalBox,
|
||||
_ => _normalBox
|
||||
};
|
||||
}
|
||||
|
||||
private void ProcessOtherBox()
|
||||
{
|
||||
if (_currentView == _actorBubble || _currentView == _playerBubble)
|
||||
{
|
||||
_normalBox.HideDialog();
|
||||
}
|
||||
|
||||
if (_currentView == _normalBox)
|
||||
{
|
||||
_actorBubble.HideDialog();
|
||||
_playerBubble.HideDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98b5d94e03211a94bba6de692a1d405a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,118 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public class DialogCanvasManager : Singleton<DialogCanvasManager>
|
||||
{
|
||||
private const string BubbleView = "Dialog Bubble View";
|
||||
private const string OldBoxView = "Dialog Box";
|
||||
|
||||
private const string QuickTalk = "Quick Talk";
|
||||
|
||||
private IDialogView _bubbleView;
|
||||
private IDialogView _oldBoxView;
|
||||
|
||||
private IDialogView _curView;
|
||||
|
||||
private GameObject _quickTalkButton;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
InitDialogViews();
|
||||
InitQuickTalkButton();
|
||||
// 默认为旧Box
|
||||
_curView = _bubbleView;
|
||||
}
|
||||
|
||||
#region 对话结束后隐藏
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
DialogController.OnDialogueComplete += HideDialog;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
DialogController.OnDialogueComplete -= HideDialog;
|
||||
}
|
||||
|
||||
private void HideDialog()
|
||||
{
|
||||
_curView.HideDialog();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.Q) && Input.GetKey(KeyCode.P) )
|
||||
{
|
||||
_quickTalkButton.SetActive(!_quickTalkButton.activeSelf);
|
||||
}
|
||||
}
|
||||
|
||||
private void InitDialogViews()
|
||||
{
|
||||
_bubbleView = transform.Find(BubbleView).GetComponent<IDialogView>();
|
||||
_oldBoxView = transform.Find(OldBoxView).GetComponent<IDialogView>();
|
||||
|
||||
_bubbleView.HideDialog();
|
||||
_oldBoxView.HideDialog();
|
||||
}
|
||||
|
||||
private void InitQuickTalkButton()
|
||||
{
|
||||
_quickTalkButton = transform.Find(QuickTalk).gameObject;
|
||||
_quickTalkButton.GetComponent<Button>().onClick.AddListener(SwitchQuickTalkMode);
|
||||
}
|
||||
|
||||
private void SwitchQuickTalkMode()
|
||||
{
|
||||
DialogController.Instance.quickRunMode = !DialogController.Instance.quickRunMode;
|
||||
_quickTalkButton.GetComponent<Image>().color =
|
||||
DialogController.Instance.quickRunMode ? Color.gray : Color.white;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 切换对话UI
|
||||
/// </summary>
|
||||
/// <param name="viewType">UI类型</param>
|
||||
/// <returns></returns>
|
||||
public IDialogView SwitchDialogView(DialogViewType viewType)
|
||||
{
|
||||
var newDlg = viewType switch
|
||||
{
|
||||
DialogViewType.Bubble => _bubbleView,
|
||||
DialogViewType.OldBox => _oldBoxView,
|
||||
_ => _oldBoxView
|
||||
};
|
||||
|
||||
if (_curView != newDlg)
|
||||
{
|
||||
_curView.HideDialog();
|
||||
_curView = newDlg;
|
||||
}
|
||||
|
||||
return _curView;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前正在使用的Dialog View
|
||||
/// </summary>
|
||||
/// <returns>当前正在使用的Dialog View</returns>
|
||||
/// <exception cref="Exception">未找到Canvas</exception>
|
||||
public static IDialogView GetCurView()
|
||||
{
|
||||
return Instance._curView;
|
||||
}
|
||||
}
|
||||
|
||||
public enum DialogViewType
|
||||
{
|
||||
Bubble, OldBox
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c14c52217dac70244b02fe48d9462bae
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,16 @@
|
||||
namespace AibisDream
|
||||
{
|
||||
public class DialogOldBox : DialogBoxBase
|
||||
{
|
||||
private void OnEnable()
|
||||
{
|
||||
DialogController.OnDialogueComplete += HideDialog;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
DialogController.OnDialogueComplete -= HideDialog;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2f063fd2d0404e04a809d7614c5b7532
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+13
-20
@@ -1,5 +1,6 @@
|
||||
using Febucci.UI;
|
||||
using System;
|
||||
using AibisDream.Utility;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
@@ -11,12 +12,12 @@ namespace AibisDream
|
||||
{
|
||||
#region 组件名称
|
||||
|
||||
private const string DIALOG_BOX = "Dialog Box";
|
||||
private const string ACTOR_NAME = "Actor Name";
|
||||
private const string DIALOG_TEXT = "Dialog Text";
|
||||
private const string NEXT_BUTTON = "Next Button";
|
||||
private const string CHOICE_BUTTON = "Choice Button";
|
||||
private const string QUICK_TALK = "Quick Talk";
|
||||
private const string DialogBox = "Dialog Box";
|
||||
private const string ActorName = "Actor Name";
|
||||
private const string DialogText = "Dialog Text";
|
||||
private const string NextButton = "Next Button";
|
||||
private const string ChoiceBox = "Choice Box";
|
||||
private const string QuickTalk = "Quick Talk";
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -40,7 +41,7 @@ namespace AibisDream
|
||||
// 获取预制体
|
||||
choiceButtonPrefab = Resources.Load<GameObject>("Prefabs/UI/Choice Button");
|
||||
// 获取子物体
|
||||
dialogBox = transform.Find(DIALOG_BOX).gameObject;
|
||||
dialogBox = transform.Find(DialogBox).gameObject;
|
||||
GetDialogComponentInBox(dialogBox);
|
||||
}
|
||||
|
||||
@@ -54,14 +55,6 @@ namespace AibisDream
|
||||
DialogController.OnDialogueComplete -= HideDialog;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.Q) && Input.GetKey(KeyCode.P) )
|
||||
{
|
||||
quickTalkButton.SetActive(!quickTalkButton.activeSelf);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示文字
|
||||
/// </summary>
|
||||
@@ -176,11 +169,11 @@ namespace AibisDream
|
||||
|
||||
private void GetDialogComponentInBox(GameObject box)
|
||||
{
|
||||
actorName = box.transform.Find(ACTOR_NAME).gameObject.GetComponent<TextMeshProUGUI>();
|
||||
dialogText = box.transform.Find(DIALOG_TEXT).gameObject.GetComponent<TypewriterByCharacter>();
|
||||
nextButton = box.transform.Find(NEXT_BUTTON).GetComponent<Button>();
|
||||
choiceBox = box.transform.Find(CHOICE_BUTTON).gameObject;
|
||||
quickTalkButton = box.transform.Find(QUICK_TALK).gameObject;
|
||||
actorName = box.transform.Find(ActorName).gameObject.GetComponent<TextMeshProUGUI>();
|
||||
dialogText = box.transform.Find(DialogText).gameObject.GetComponent<TypewriterByCharacter>();
|
||||
nextButton = box.transform.Find(NextButton).GetComponent<Button>();
|
||||
choiceBox = box.transform.Find(ChoiceBox).gameObject;
|
||||
quickTalkButton = box.transform.Find(QuickTalk).gameObject;
|
||||
|
||||
quickTalkButton.GetComponent<Button>().onClick.AddListener(SwitchQuickTalkMode);
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using AibisDream.Config;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public interface IDialogView
|
||||
{
|
||||
public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, bool isAutoSkip = false);
|
||||
|
||||
public void ShowOptions(DialogueOption[] dialogueOptions, Action<int> onOptionSelected);
|
||||
|
||||
public void HideDialog();
|
||||
|
||||
public bool TrySkipLine();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d9f2abb67889d3247a1314a7788f8554
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -12,4 +12,3 @@ namespace AibisDream
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
namespace AibisDream.Utility
|
||||
{
|
||||
public class CommonUtil
|
||||
public static class CommonUtil
|
||||
{
|
||||
private const float Epsilon = 1e-5f;
|
||||
|
||||
|
||||
@@ -0,0 +1,366 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public class CsvUtil
|
||||
{
|
||||
// 默认编码
|
||||
private static readonly Encoding DefaultEncode = Encoding.UTF8;
|
||||
|
||||
// 默认分隔符
|
||||
private const char FieldSeparator = ',';
|
||||
|
||||
public static List<string[]> Read(string filePath)
|
||||
{
|
||||
List<string[]> dataList = new List<string[]>();
|
||||
StreamReader reader;
|
||||
try
|
||||
{
|
||||
using (reader = new StreamReader(filePath, DefaultEncode))
|
||||
{
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
string line = reader.ReadLine();
|
||||
if (line == null) break;
|
||||
string[] data = line.Split(FieldSeparator);
|
||||
dataList.Add(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
foreach (Process process in Process.GetProcesses())
|
||||
{
|
||||
if (process.ProcessName.ToUpper().Equals("EXCEL"))
|
||||
process.Kill();
|
||||
}
|
||||
|
||||
GC.Collect();
|
||||
Thread.Sleep(50);
|
||||
Console.WriteLine(ex.StackTrace);
|
||||
using (reader = new StreamReader(filePath, DefaultEncode))
|
||||
{
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
string line = reader.ReadLine();
|
||||
if (line == null) break;
|
||||
string[] data = line.Split(FieldSeparator);
|
||||
dataList.Add(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
reader.Close();
|
||||
return dataList;
|
||||
}
|
||||
|
||||
public static void WriteCsv(string filePath, List<string[]> dataList)
|
||||
{
|
||||
StreamWriter writer = new StreamWriter(filePath, false, DefaultEncode);
|
||||
foreach (string[] data in dataList)
|
||||
{
|
||||
writer.WriteLine(string.Join(FieldSeparator, data));
|
||||
}
|
||||
|
||||
writer.Close();
|
||||
}
|
||||
|
||||
public static List<T> ReadAsBean<T>(string filePath) where T : class
|
||||
{
|
||||
// 反射部分
|
||||
var targetType = typeof(T);
|
||||
var props = targetType.GetProperties();
|
||||
|
||||
// 读取CSV
|
||||
using var reader = new StreamReader(filePath, DefaultEncode);
|
||||
|
||||
// 第一行是注释
|
||||
reader.ReadLine();
|
||||
// 第二行作为title
|
||||
var titles = reader.ReadLine()?.Split(FieldSeparator);
|
||||
if (titles == null)
|
||||
{
|
||||
Debug.WriteLine("csv无标题");
|
||||
throw new Exception("csv无标题");
|
||||
}
|
||||
|
||||
var res = new List<T>();
|
||||
// 第二行开始读配置内容
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
string newLine = reader.ReadLine();
|
||||
if (string.IsNullOrEmpty(newLine)) break;
|
||||
|
||||
string[] rowData = newLine.Split(FieldSeparator);
|
||||
if (rowData == null || rowData.Length == 0) continue;
|
||||
|
||||
// 转为Bean
|
||||
var obj = Activator.CreateInstance(targetType);
|
||||
foreach (var prop in props)
|
||||
{
|
||||
string name = prop.Name;
|
||||
if (!titles.Contains(prop.Name))
|
||||
continue;
|
||||
|
||||
int idx = Array.IndexOf(titles, prop.Name);
|
||||
prop.SetValue(obj, GetDefaultValue(prop, rowData[idx]));
|
||||
}
|
||||
|
||||
res.Add(obj as T);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
public static bool ReadAsDataTable(ref DataTable myCsvDt, string filepath)
|
||||
{
|
||||
var strPath = filepath; //csv文件的路径
|
||||
|
||||
try
|
||||
{
|
||||
bool blnFlag = true;
|
||||
|
||||
StreamReader reader = new StreamReader(strPath, DefaultEncode);
|
||||
myCsvDt = new DataTable();
|
||||
while (reader.ReadLine() is { } strLine)
|
||||
{
|
||||
var aryLine = strLine.Split(FieldSeparator);
|
||||
//第一行是列的名字,给datatable加上列名,
|
||||
if (blnFlag)
|
||||
{
|
||||
blnFlag = false;
|
||||
var intColCount = aryLine.Length;
|
||||
|
||||
#region 序号作为列头
|
||||
|
||||
//int col = 0;
|
||||
//for (int i = 0; i < intColCount; i++)
|
||||
//{
|
||||
// col = i + 1;
|
||||
// mydc = new DataColumn(col.ToString());
|
||||
// mycsvdt.Columns.Add(mydc);
|
||||
//}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 第一行作为列头
|
||||
|
||||
for (int i = 0; i < intColCount; i++)
|
||||
{
|
||||
myCsvDt.Columns.Add(new DataColumn(aryLine[i]));
|
||||
}
|
||||
|
||||
continue;
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
//填充数据并加入到datatable中
|
||||
myCsvDt.Rows.Add(aryLine);
|
||||
}
|
||||
|
||||
reader.Close();
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static void ExportAsCsv(DataTable dt, string savaPath, string strName)
|
||||
{
|
||||
string strPath = savaPath + "\\" + strName; //保存到指定目录下
|
||||
|
||||
if (File.Exists(strPath))
|
||||
{
|
||||
File.Delete(strPath);
|
||||
}
|
||||
|
||||
//先打印标头
|
||||
StringBuilder strColu = new StringBuilder();
|
||||
StringBuilder strValue = new StringBuilder();
|
||||
StreamWriter sw = new StreamWriter(new FileStream(strPath, FileMode.CreateNew), DefaultEncode);
|
||||
try
|
||||
{
|
||||
for (var i = 0; i <= dt.Columns.Count - 1; i++)
|
||||
{
|
||||
strColu.Append(dt.Columns[i].ColumnName);
|
||||
strColu.Append(FieldSeparator);
|
||||
}
|
||||
|
||||
strColu.Remove(strColu.Length - 1, 1); //移出掉最后一个,字符
|
||||
sw.WriteLine(strColu);
|
||||
foreach (DataRow dr in dt.Rows)
|
||||
{
|
||||
strValue.Remove(0, strValue.Length); //移出
|
||||
for (var i = 0; i <= dt.Columns.Count - 1; i++)
|
||||
{
|
||||
strValue.Append(dr[i]);
|
||||
strValue.Append(FieldSeparator);
|
||||
}
|
||||
|
||||
strValue.Remove(strValue.Length - 1, 1); //移出掉最后一个,字符
|
||||
sw.WriteLine(strValue);
|
||||
}
|
||||
|
||||
sw.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine(ex.Message);
|
||||
sw.Close();
|
||||
}
|
||||
}
|
||||
|
||||
#region 类型转换
|
||||
|
||||
private static object GetDefaultValue(PropertyInfo prop, string value)
|
||||
{
|
||||
return prop.PropertyType.Name switch
|
||||
{
|
||||
"String" => ToNormalString(value),
|
||||
"Int32" => ToInt32(value),
|
||||
"Decimal" => ToDecimal(value),
|
||||
"Single" => ToFloat(value),
|
||||
"Boolean" => ToBoolean(value),
|
||||
"DateTime" => ToDateTime(value),
|
||||
"Double" => ToDouble(value),
|
||||
_ => ToEnum(value, prop)
|
||||
};
|
||||
}
|
||||
|
||||
private static object ToEnum(string value, PropertyInfo prop)
|
||||
{
|
||||
return prop.PropertyType.BaseType == typeof(Enum) ? Enum.Parse(prop.PropertyType, value) : null;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// 转换为Int32
|
||||
/// </summary>
|
||||
private static int ToInt32(string obj)
|
||||
{
|
||||
if (string.IsNullOrEmpty(obj)) return 0;
|
||||
try
|
||||
{
|
||||
if (obj.Contains("."))
|
||||
return (int)Convert.ToSingle(obj);
|
||||
if (int.TryParse(obj, out var tmp))
|
||||
return tmp;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 转换为字符串
|
||||
/// </summary>
|
||||
private static string ToNormalString(string obj)
|
||||
{
|
||||
if (obj == null)
|
||||
return string.Empty;
|
||||
try
|
||||
{
|
||||
return Convert.ToString(obj);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// 转换为日期
|
||||
/// </summary>
|
||||
private static DateTime ToDateTime(string obj)
|
||||
{
|
||||
if (string.IsNullOrEmpty(obj))
|
||||
{
|
||||
return Convert.ToDateTime("1970-01-01 00:00:00");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return Convert.ToDateTime(obj);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return Convert.ToDateTime("1970-01-01 00:00:00");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 转换为布尔型
|
||||
/// </summary>
|
||||
private static bool ToBoolean(string obj)
|
||||
{
|
||||
if (obj == null) return false;
|
||||
|
||||
return obj.ToLower() == "true" || obj == "1";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 转换为十进制数值
|
||||
/// </summary>
|
||||
private static Decimal ToDecimal(string obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return 0M;
|
||||
}
|
||||
|
||||
var resultString = Regex.Replace(obj, "[^0-9.]", "");
|
||||
var result = resultString.Length == 0 ? 0M : decimal.Parse(resultString);
|
||||
if (obj.StartsWith("-"))
|
||||
{
|
||||
result *= -1M;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
///<summary>
|
||||
/// 转换为双精度.
|
||||
/// </summary>
|
||||
private static double ToDouble(string obj)
|
||||
{
|
||||
if (double.TryParse(obj, out var num))
|
||||
return num;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 转换为单精度.
|
||||
/// </summary>
|
||||
private static float ToFloat(string value)
|
||||
{
|
||||
var normalStr = ToNormalString(value);
|
||||
if (string.IsNullOrEmpty(normalStr))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (float.TryParse(normalStr, out var result))
|
||||
return result;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5beb292d61f8e134284d2e928fb77d0a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -28,5 +28,4 @@ namespace AibisDream
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c23e36c3bf88034e98063d0c27ba935
|
||||
guid: 214dbdcae17401d4e94285d5e416ce66
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace AibisDream.Utility
|
||||
{
|
||||
public abstract class SingletonBase<T> where T : SingletonBase<T>
|
||||
{
|
||||
private static T _instance;
|
||||
|
||||
public static T Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance != null) return _instance;
|
||||
// 先获取所有非public的构造方法
|
||||
var ctors = typeof(T).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic);
|
||||
// 从ctors中获取无参的构造方法
|
||||
var ctor = Array.Find(ctors, c => c.GetParameters().Length == 0);
|
||||
if (ctor == null)
|
||||
throw new Exception("Non-public ctor() not found!");
|
||||
// 调用构造方法
|
||||
_instance = ctor.Invoke(null) as T;
|
||||
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0e06ce6997ac4a14fa439ac9c3747fe9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,11 +1,12 @@
|
||||
using System.Collections;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using System.Linq;
|
||||
using AibisDream.Config;
|
||||
using Yarn;
|
||||
using Yarn.Markup;
|
||||
using Yarn.Unity;
|
||||
|
||||
namespace AibisDream
|
||||
namespace AibisDream.Utility
|
||||
{
|
||||
public static class YarnUtil
|
||||
{
|
||||
@@ -14,6 +15,8 @@ namespace AibisDream
|
||||
private const string OptionAttr = "options";
|
||||
|
||||
private const string CommandProp = "name";
|
||||
|
||||
private const string AutoNext = "auto_next";
|
||||
|
||||
public static bool HasCommandAttr(this MarkupParseResult text)
|
||||
{
|
||||
@@ -37,5 +40,93 @@ namespace AibisDream
|
||||
{
|
||||
runner.Dialogue.CommandHandler += onCommand;
|
||||
}
|
||||
|
||||
#region 处理行信息
|
||||
|
||||
/// <summary>
|
||||
/// 当前行是否应该自动跳过
|
||||
/// </summary>
|
||||
/// <param name="line">当前行</param>
|
||||
/// <returns>是否应该自动跳过</returns>
|
||||
public static bool IsAutoSkipLine(this LocalizedLine line)
|
||||
{
|
||||
return line.Metadata != null && line.Metadata.Contains(AutoNext);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从line中获取角色vo定义
|
||||
/// </summary>
|
||||
/// <param name="line">行数据</param>
|
||||
/// <returns>结果</returns>
|
||||
public static CharacterVo GetCharacterVo(this LocalizedLine line)
|
||||
{
|
||||
if (line.Text.TryGetAttributeWithName("character", out var characterAttribute))
|
||||
{
|
||||
// 直接写就使用配置选项
|
||||
if (characterAttribute.Properties.TryGetValue("name", out var nameValue))
|
||||
{
|
||||
return GetCharacterVoByKey(nameValue.StringValue);
|
||||
}
|
||||
|
||||
// 带key就说明可能有自定义属性
|
||||
if (characterAttribute.Properties.TryGetValue("key", out var keyValue))
|
||||
{
|
||||
// 先从配置文件找
|
||||
var charVo = GetCharacterVoByKey(keyValue.StringValue);
|
||||
// 再用自定义填充
|
||||
return FullCharVoWithProps(charVo, characterAttribute.Properties);
|
||||
}
|
||||
|
||||
// 找不到Name和Key
|
||||
return new CharacterVo();
|
||||
}
|
||||
|
||||
// 没有Character就直接返回空
|
||||
return new CharacterVo();
|
||||
}
|
||||
|
||||
private static CharacterVo GetCharacterVoByKey(string charKey)
|
||||
{
|
||||
if (ConfigUtil.Instance.TryGetCharacter(charKey, out var character))
|
||||
{
|
||||
return character.GetStructVo();
|
||||
}
|
||||
|
||||
return new CharacterVo
|
||||
{
|
||||
key = charKey,
|
||||
cn = charKey,
|
||||
role = ActorRole.Aside
|
||||
};
|
||||
}
|
||||
|
||||
private static CharacterVo FullCharVoWithProps(CharacterVo vo, IReadOnlyDictionary<string, MarkupValue> props)
|
||||
{
|
||||
foreach (var pair in props)
|
||||
{
|
||||
switch (pair.Key)
|
||||
{
|
||||
case "cn":
|
||||
vo.cn = pair.Value.StringValue;
|
||||
break;
|
||||
case "nameColor":
|
||||
vo.nameColor = pair.Value.StringValue;
|
||||
break;
|
||||
case "headPicPath":
|
||||
vo.headPicPath = pair.Value.StringValue;
|
||||
break;
|
||||
case "voicePath":
|
||||
vo.voicePath = pair.Value.StringValue;
|
||||
break;
|
||||
case "role":
|
||||
vo.role = Enum.TryParse<ActorRole>(pair.Value.StringValue, out var type) ? type : ActorRole.Aside;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac53588b1de1f684394e920819d63ba4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,3 @@
|
||||
key,value,commit
|
||||
version,V1.0,此列为注释,不影响结果
|
||||
volume,75,基础音量,仅作示例
|
||||
|
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eeb8e6da405840f47b0e017bb0fd5a66
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,10 @@
|
||||
通过key索引配置,中文名,人物角色(Player/MainActor/Aside),名称显示时的颜色,头像Pic路径,语音资源路径
|
||||
Key,Cn,Role,NameColor,HeadPicPath,VoicePath
|
||||
peipei,佩佩,MainActor,#00FFFF,peipei_head,peipei_voice
|
||||
me,我,Player,,me_head,me_voice
|
||||
peipei_novoice,胆怯女声,Aside,#00FFFF,,
|
||||
yingli_novoice,严厉女声,Aside,#FFCC00,,
|
||||
tutorial,教学,Aside,,,
|
||||
docter,儿科医生,Aside,#FFCC00,,
|
||||
peipei_child,童年佩佩,Aside,#00FFFF,,
|
||||
unknown,???,Aside,#FFCC00,,
|
||||
|
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9a5f897ea6a57d24c9ba62112e6600d3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"MonoBehaviour": {
|
||||
"Version": 4,
|
||||
"EnableBurstCompilation": true,
|
||||
"EnableOptimisations": true,
|
||||
"EnableSafetyChecks": false,
|
||||
"EnableDebugInAllBuilds": false,
|
||||
"DebugDataKind": 1,
|
||||
"EnableArmv9SecurityFeatures": false,
|
||||
"CpuMinTargetX32": 0,
|
||||
"CpuMaxTargetX32": 0,
|
||||
"CpuMinTargetX64": 0,
|
||||
"CpuMaxTargetX64": 0,
|
||||
"CpuTargetsX32": 6,
|
||||
"CpuTargetsX64": 72,
|
||||
"OptimizeFor": 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"MonoBehaviour": {
|
||||
"Version": 4,
|
||||
"EnableBurstCompilation": true,
|
||||
"EnableOptimisations": true,
|
||||
"EnableSafetyChecks": false,
|
||||
"EnableDebugInAllBuilds": false,
|
||||
"DebugDataKind": 1,
|
||||
"EnableArmv9SecurityFeatures": false,
|
||||
"CpuMinTargetX32": 0,
|
||||
"CpuMaxTargetX32": 0,
|
||||
"CpuMinTargetX64": 0,
|
||||
"CpuMaxTargetX64": 0,
|
||||
"OptimizeFor": 0
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ QualitySettings:
|
||||
serializedVersion: 5
|
||||
m_CurrentQuality: 5
|
||||
m_QualitySettings:
|
||||
- serializedVersion: 2
|
||||
- serializedVersion: 3
|
||||
name: Very Low
|
||||
pixelLightCount: 0
|
||||
shadows: 0
|
||||
@@ -19,16 +19,20 @@ QualitySettings:
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 0
|
||||
skinWeights: 1
|
||||
textureQuality: 1
|
||||
globalTextureMipmapLimit: 1
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 0
|
||||
antiAliasing: 0
|
||||
softParticles: 0
|
||||
softVegetation: 0
|
||||
realtimeReflectionProbes: 0
|
||||
billboardsFaceCameraPosition: 0
|
||||
useLegacyDetailDistribution: 1
|
||||
vSyncCount: 0
|
||||
realtimeGICPUUsage: 25
|
||||
lodBias: 0.3
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
@@ -41,8 +45,17 @@ QualitySettings:
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 2
|
||||
- serializedVersion: 3
|
||||
name: Low
|
||||
pixelLightCount: 0
|
||||
shadows: 0
|
||||
@@ -55,16 +68,20 @@ QualitySettings:
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 0
|
||||
skinWeights: 2
|
||||
textureQuality: 0
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 0
|
||||
antiAliasing: 0
|
||||
softParticles: 0
|
||||
softVegetation: 0
|
||||
realtimeReflectionProbes: 0
|
||||
billboardsFaceCameraPosition: 0
|
||||
useLegacyDetailDistribution: 1
|
||||
vSyncCount: 0
|
||||
realtimeGICPUUsage: 25
|
||||
lodBias: 0.4
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
@@ -77,8 +94,17 @@ QualitySettings:
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 2
|
||||
- serializedVersion: 3
|
||||
name: Medium
|
||||
pixelLightCount: 1
|
||||
shadows: 1
|
||||
@@ -91,16 +117,20 @@ QualitySettings:
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 0
|
||||
skinWeights: 2
|
||||
textureQuality: 0
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 1
|
||||
antiAliasing: 0
|
||||
softParticles: 0
|
||||
softVegetation: 0
|
||||
realtimeReflectionProbes: 0
|
||||
billboardsFaceCameraPosition: 0
|
||||
useLegacyDetailDistribution: 1
|
||||
vSyncCount: 1
|
||||
realtimeGICPUUsage: 25
|
||||
lodBias: 0.7
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
@@ -113,8 +143,17 @@ QualitySettings:
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 2
|
||||
- serializedVersion: 3
|
||||
name: High
|
||||
pixelLightCount: 2
|
||||
shadows: 2
|
||||
@@ -127,16 +166,20 @@ QualitySettings:
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 1
|
||||
skinWeights: 2
|
||||
textureQuality: 0
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 1
|
||||
antiAliasing: 0
|
||||
softParticles: 0
|
||||
softVegetation: 1
|
||||
realtimeReflectionProbes: 1
|
||||
billboardsFaceCameraPosition: 1
|
||||
useLegacyDetailDistribution: 1
|
||||
vSyncCount: 1
|
||||
realtimeGICPUUsage: 50
|
||||
lodBias: 1
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
@@ -149,8 +192,17 @@ QualitySettings:
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 2
|
||||
- serializedVersion: 3
|
||||
name: Very High
|
||||
pixelLightCount: 3
|
||||
shadows: 2
|
||||
@@ -163,16 +215,20 @@ QualitySettings:
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 1
|
||||
skinWeights: 4
|
||||
textureQuality: 0
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 2
|
||||
antiAliasing: 2
|
||||
softParticles: 1
|
||||
softVegetation: 1
|
||||
realtimeReflectionProbes: 1
|
||||
billboardsFaceCameraPosition: 1
|
||||
useLegacyDetailDistribution: 1
|
||||
vSyncCount: 1
|
||||
realtimeGICPUUsage: 50
|
||||
lodBias: 1.5
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
@@ -185,8 +241,17 @@ QualitySettings:
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
- serializedVersion: 2
|
||||
- serializedVersion: 3
|
||||
name: Ultra
|
||||
pixelLightCount: 4
|
||||
shadows: 2
|
||||
@@ -199,16 +264,20 @@ QualitySettings:
|
||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||
shadowmaskMode: 1
|
||||
skinWeights: 255
|
||||
textureQuality: 0
|
||||
globalTextureMipmapLimit: 0
|
||||
textureMipmapLimitSettings: []
|
||||
anisotropicTextures: 2
|
||||
antiAliasing: 0
|
||||
softParticles: 1
|
||||
softVegetation: 1
|
||||
realtimeReflectionProbes: 1
|
||||
billboardsFaceCameraPosition: 1
|
||||
useLegacyDetailDistribution: 1
|
||||
vSyncCount: 1
|
||||
realtimeGICPUUsage: 100
|
||||
lodBias: 2
|
||||
maximumLODLevel: 0
|
||||
enableLODCrossFade: 1
|
||||
streamingMipmapsActive: 0
|
||||
streamingMipmapsAddAllCameras: 1
|
||||
streamingMipmapsMemoryBudget: 512
|
||||
@@ -221,15 +290,26 @@ QualitySettings:
|
||||
asyncUploadPersistentBuffer: 1
|
||||
resolutionScalingFixedDPIFactor: 1
|
||||
customRenderPipeline: {fileID: 0}
|
||||
terrainQualityOverrides: 0
|
||||
terrainPixelError: 1
|
||||
terrainDetailDensityScale: 1
|
||||
terrainBasemapDistance: 1000
|
||||
terrainDetailDistance: 80
|
||||
terrainTreeDistance: 5000
|
||||
terrainBillboardStart: 50
|
||||
terrainFadeLength: 5
|
||||
terrainMaxTrees: 50
|
||||
excludedTargetPlatforms: []
|
||||
m_TextureMipmapLimitGroupNames: []
|
||||
m_PerPlatformDefaultQuality:
|
||||
Android: 2
|
||||
Lumin: 5
|
||||
GameCoreScarlett: 5
|
||||
GameCoreXboxOne: 5
|
||||
Lumin: 5
|
||||
Nintendo Switch: 5
|
||||
PS4: 5
|
||||
PS5: 5
|
||||
Server: 0
|
||||
Stadia: 5
|
||||
Standalone: 5
|
||||
WebGL: 3
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &1
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 53
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
customInterpolatorErrorThreshold: 32
|
||||
customInterpolatorWarningThreshold: 16
|
||||
@@ -0,0 +1,16 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &1
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 53
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
assetDefaultFramerate: 60
|
||||
m_DefaultFrameRate: 60
|
||||
Reference in New Issue
Block a user