Merge branch 'develop' into fearure/Yarn_FP
This commit is contained in:
@@ -140,6 +140,7 @@ namespace RainbowArt.CleanFlatUI
|
||||
for(int i = 0; i < fgList.Count; i++)
|
||||
{
|
||||
RectTransform rectTrans = fgList[i];
|
||||
Image image=rectTrans.transform.GetChild(0).GetComponent<Image>();
|
||||
if(i < currentValue)
|
||||
{
|
||||
rectTrans.gameObject.SetActive(true);
|
||||
@@ -147,10 +148,19 @@ namespace RainbowArt.CleanFlatUI
|
||||
else
|
||||
{
|
||||
rectTrans.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
if(i<16)
|
||||
{
|
||||
image.color=Color.Lerp(Color.green, Color.yellow, i/16f);
|
||||
}
|
||||
else
|
||||
{
|
||||
image.color = Color.Lerp(Color.yellow, Color.red, (i - 16) / 16f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void UpdateText()
|
||||
{
|
||||
if (text != null && text.gameObject.activeSelf != hasText)
|
||||
@@ -159,8 +169,10 @@ namespace RainbowArt.CleanFlatUI
|
||||
}
|
||||
if (hasText && (text != null))
|
||||
{
|
||||
float val = (float)currentValue / (float)maxValue;
|
||||
text.text = Mathf.FloorToInt(val * 100) + "%";
|
||||
//float val = (float)currentValue / (float)maxValue;
|
||||
//text.text = Mathf.FloorToInt(val * 100) + "%";
|
||||
|
||||
text.text=currentValue*500+" 马力";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,18 +419,18 @@ MonoBehaviour:
|
||||
HideSetupWizard: 1
|
||||
LastEventReferenceScanVersion: 131621
|
||||
Platforms:
|
||||
- {fileID: 9010303474896345012}
|
||||
- {fileID: 6330521338056678831}
|
||||
- {fileID: 3979222738758991920}
|
||||
- {fileID: -1580684736993228498}
|
||||
- {fileID: 1100827045814593625}
|
||||
- {fileID: 6477534247104662684}
|
||||
- {fileID: -785679389004310805}
|
||||
- {fileID: 1132312529069990576}
|
||||
- {fileID: -6421979802148699356}
|
||||
- {fileID: 5613685733850034091}
|
||||
- {fileID: -2493609972237370556}
|
||||
- {fileID: -1580684736993228498}
|
||||
- {fileID: -785679389004310805}
|
||||
- {fileID: -712030531834803398}
|
||||
- {fileID: 1100827045814593625}
|
||||
- {fileID: 1132312529069990576}
|
||||
- {fileID: 3979222738758991920}
|
||||
- {fileID: 5613685733850034091}
|
||||
- {fileID: 6330521338056678831}
|
||||
- {fileID: 6477534247104662684}
|
||||
- {fileID: 9010303474896345012}
|
||||
MigratedPlatforms: 0500000000000000060000000a0000000800000009000000120000000c000000150000000b0000000200000001000000
|
||||
--- !u!114 &1100827045814593625
|
||||
MonoBehaviour:
|
||||
@@ -794,16 +794,16 @@ MonoBehaviour:
|
||||
HasValue: 0
|
||||
displaySortOrder: 0
|
||||
childIdentifiers:
|
||||
- 0f8eb3f400726694eb47beb1a9f94ce8
|
||||
- 46fbfdf3fc43db0458918377fd40293e
|
||||
- 2fea114e74ecf3c4f920e1d5cc1c4c40
|
||||
- e7a046c753c3c3d4aacc91f6597f310d
|
||||
- 52eb9df5db46521439908db3a29a1bbb
|
||||
- 2c5177b11d81d824dbb064f9ac8527da
|
||||
- b7716510a1f36934c87976f3a81dbf3d
|
||||
- c88d16e5272a4e241b0ef0ac2e53b73d
|
||||
- de700ef3f37a49b58a57ae3addf01ad9
|
||||
- 46fbfdf3fc43db0458918377fd40293e
|
||||
- 52eb9df5db46521439908db3a29a1bbb
|
||||
- fd7c55dab0fce234b8c25f6ffca523c1
|
||||
- 2fea114e74ecf3c4f920e1d5cc1c4c40
|
||||
- 2c5177b11d81d824dbb064f9ac8527da
|
||||
- 0f8eb3f400726694eb47beb1a9f94ce8
|
||||
- c88d16e5272a4e241b0ef0ac2e53b73d
|
||||
- e7a046c753c3c3d4aacc91f6597f310d
|
||||
codecChannels:
|
||||
Value: []
|
||||
HasValue: 0
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,242 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 64008f2c27d35ac409386015a6bb5887
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: b2a9591990af98743ba3ff7cf1000886, type: 3}
|
||||
textureImporterSettings:
|
||||
alphaSource: 1
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
convertToNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
swizzle: 50462976
|
||||
isReadable: 0
|
||||
streamingMipmaps: 1
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
nPOTScale: 1
|
||||
sRGBTexture: 1
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 500
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 0
|
||||
flipbookColumns: 0
|
||||
ignorePngGamma: 0
|
||||
cookieMode: 0
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
normalMap: 0
|
||||
textureFormat: 0
|
||||
maxTextureSize: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 0
|
||||
linearTexture: 0
|
||||
grayScaleToAlpha: 0
|
||||
rGBM: 0
|
||||
cubemapConvolutionSteps: 0
|
||||
cubemapConvolutionExponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
spriteImportData:
|
||||
- name:
|
||||
originalName:
|
||||
pivot: {x: 0, y: 0}
|
||||
alignment: 0
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
height: 0
|
||||
spriteID:
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 0, y: 0}
|
||||
spritePosition: {x: 0, y: 0}
|
||||
mosaicSpriteImportData: []
|
||||
rigSpriteImportData:
|
||||
- name: "\u56FE\u5C42 2"
|
||||
originalName:
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
alignment: 0
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 4
|
||||
y: 4
|
||||
width: 1823
|
||||
height: 1127
|
||||
spriteID: bebac499b546daf4893c5ecd0bf27294
|
||||
spriteBone: []
|
||||
spriteOutline: []
|
||||
vertices: []
|
||||
spritePhysicsOutline: []
|
||||
indices:
|
||||
edges: []
|
||||
tessellationDetail: 0
|
||||
uvTransform: {x: 4, y: 4}
|
||||
spritePosition: {x: 0, y: 0}
|
||||
characterData:
|
||||
bones: []
|
||||
parts: []
|
||||
dimension: {x: 0, y: 0}
|
||||
characterGroups: []
|
||||
pivot: {x: 0, y: 0}
|
||||
boneReadOnly: 0
|
||||
sharedRigSpriteImportData: []
|
||||
sharedRigCharacterData:
|
||||
bones: []
|
||||
parts: []
|
||||
dimension: {x: 0, y: 0}
|
||||
characterGroups: []
|
||||
pivot: {x: 0, y: 0}
|
||||
boneReadOnly: 0
|
||||
platformSettings:
|
||||
- name: DefaultTexturePlatform
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- name: Standalone
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- name: Server
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- name: Android
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- name: WebGL
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
mosaicLayers: 1
|
||||
characterMode: 1
|
||||
documentPivot: {x: 0, y: 0}
|
||||
documentAlignment: 7
|
||||
importHiddenLayers: 0
|
||||
layerMappingOption: 2
|
||||
generatePhysicsShape: 0
|
||||
paperDollMode: 0
|
||||
keepDupilcateSpriteName: 1
|
||||
skeletonAssetReferenceID:
|
||||
padding: 4
|
||||
spriteSizeExpand: 0
|
||||
spriteCategoryList:
|
||||
categories: []
|
||||
spritePackingTag:
|
||||
resliceFromLayer: 0
|
||||
mosaicPSDLayers: []
|
||||
rigPSDLayers:
|
||||
- name: "\u56FE\u5C42 2"
|
||||
spriteName: "\u56FE\u5C42 2"
|
||||
isGroup: 0
|
||||
parentIndex: -1
|
||||
spriteID: bebac499b546daf4893c5ecd0bf27294
|
||||
layerID: 8
|
||||
mosaicPosition: {x: 4, y: 4}
|
||||
flatten: 0
|
||||
isImported: 1
|
||||
isVisible: 1
|
||||
- name: "\u56FE\u5C42 1"
|
||||
spriteName: "\u56FE\u5C42 1"
|
||||
isGroup: 0
|
||||
parentIndex: -1
|
||||
spriteID: 079b5602caf6ad6459a584388bf71067
|
||||
layerID: 2
|
||||
mosaicPosition: {x: 4, y: 4}
|
||||
flatten: 0
|
||||
isImported: 0
|
||||
isVisible: 0
|
||||
sharedRigPSDLayers: []
|
||||
pSDLayerImportSetting: []
|
||||
importFileNodeState: 1
|
||||
platformSettingsDirtyTick: 0
|
||||
spriteSizeExpandChanged: 0
|
||||
generateGOHierarchy: 0
|
||||
textureAssetName:
|
||||
prefabAssetName:
|
||||
spriteLibAssetName:
|
||||
skeletonAssetName:
|
||||
secondarySpriteTextures: []
|
||||
@@ -0,0 +1,212 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!213 &21300000
|
||||
Sprite:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: "\u53D8\u901F\u7BB1\u5531\u7247\u9F7F\u8F6E"
|
||||
m_Rect:
|
||||
serializedVersion: 2
|
||||
x: 3962
|
||||
y: 5054
|
||||
width: 130
|
||||
height: 130
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Border: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_PixelsToUnits: 215
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
m_Extrude: 1
|
||||
m_IsPolygon: 0
|
||||
m_AtlasName:
|
||||
m_PackingTag:
|
||||
m_RenderDataKey:
|
||||
149a798e8f987264f82beb4f4052eb5e: -611960561148999933
|
||||
m_AtlasTags: []
|
||||
m_SpriteAtlas: {fileID: 0}
|
||||
m_RD:
|
||||
serializedVersion: 3
|
||||
texture: {fileID: -8328923581568760697, guid: 149a798e8f987264f82beb4f4052eb5e, type: 3}
|
||||
alphaTexture: {fileID: 0}
|
||||
secondaryTextures: []
|
||||
m_SubMeshes:
|
||||
- serializedVersion: 2
|
||||
firstByte: 0
|
||||
indexCount: 6
|
||||
topology: 0
|
||||
baseVertex: 0
|
||||
firstVertex: 0
|
||||
vertexCount: 4
|
||||
localAABB:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 0, y: 0, z: 0}
|
||||
m_IndexBuffer: 000001000200020001000300
|
||||
m_VertexData:
|
||||
serializedVersion: 3
|
||||
m_VertexCount: 4
|
||||
m_Channels:
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 3
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 1
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 2
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 1
|
||||
offset: 8
|
||||
format: 0
|
||||
dimension: 4
|
||||
- stream: 1
|
||||
offset: 24
|
||||
format: 10
|
||||
dimension: 4
|
||||
m_DataSize: 208
|
||||
_typelessdata: 6bca9abe6bca9a3e000000006bca9a3e6bca9a3e000000006bca9abe6bca9abe000000006bca9a3e6bca9abe0000000000a0773f0000223f0000803f0000000000000000000000000000000000000000000000000000000000c07f3f0000223f0000803f0000000000000000000000000000000000000000000000000000000000a0773f00f01d3f0000803f0000000000000000000000000000000000000000000000000000000000c07f3f00f01d3f0000803f00000000000000000000000000000000000000000000000000000000
|
||||
m_Bindpose: []
|
||||
textureRect:
|
||||
serializedVersion: 2
|
||||
x: 3962
|
||||
y: 5054
|
||||
width: 130
|
||||
height: 130
|
||||
textureRectOffset: {x: 0, y: 0}
|
||||
atlasRectOffset: {x: -1, y: -1}
|
||||
settingsRaw: 0
|
||||
uvTransform: {x: 215, y: 4027, z: 215, w: 5119}
|
||||
downscaleMultiplier: 1
|
||||
m_AtlasRD:
|
||||
serializedVersion: 3
|
||||
texture: {fileID: -8328923581568760697, guid: 149a798e8f987264f82beb4f4052eb5e, type: 3}
|
||||
alphaTexture: {fileID: 0}
|
||||
secondaryTextures: []
|
||||
m_SubMeshes:
|
||||
- serializedVersion: 2
|
||||
firstByte: 0
|
||||
indexCount: 6
|
||||
topology: 0
|
||||
baseVertex: 0
|
||||
firstVertex: 0
|
||||
vertexCount: 4
|
||||
localAABB:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 0, y: 0, z: 0}
|
||||
m_IndexBuffer: 000001000200020001000300
|
||||
m_VertexData:
|
||||
serializedVersion: 3
|
||||
m_VertexCount: 4
|
||||
m_Channels:
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 3
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 1
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 2
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 0
|
||||
offset: 0
|
||||
format: 0
|
||||
dimension: 0
|
||||
- stream: 1
|
||||
offset: 8
|
||||
format: 0
|
||||
dimension: 4
|
||||
- stream: 1
|
||||
offset: 24
|
||||
format: 10
|
||||
dimension: 4
|
||||
m_DataSize: 208
|
||||
_typelessdata: 6bca9abe6bca9a3e000000006bca9a3e6bca9a3e000000006bca9abe6bca9abe000000006bca9a3e6bca9abe0000000000a0773f0000223f0000803f0000000000000000000000000000000000000000000000000000000000c07f3f0000223f0000803f0000000000000000000000000000000000000000000000000000000000a0773f00f01d3f0000803f0000000000000000000000000000000000000000000000000000000000c07f3f00f01d3f0000803f00000000000000000000000000000000000000000000000000000000
|
||||
m_Bindpose: []
|
||||
textureRect:
|
||||
serializedVersion: 2
|
||||
x: 3962
|
||||
y: 5054
|
||||
width: 130
|
||||
height: 130
|
||||
textureRectOffset: {x: 0, y: 0}
|
||||
atlasRectOffset: {x: -1, y: -1}
|
||||
settingsRaw: 0
|
||||
uvTransform: {x: 215, y: 4027, z: 215, w: 5119}
|
||||
downscaleMultiplier: 1
|
||||
m_PhysicsShape: []
|
||||
m_Bones: []
|
||||
m_SpriteID: db22083879843b843b69dc1550fe5bfc
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f33b33323f3c1314dbd795a207653ce0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 21300000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,50 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: FadeRing
|
||||
m_Shader: {fileID: 4800000, guid: bb8f232219e0a3a488c321b63e85281f, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _AlphaTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MaskTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _NormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _EnableExternalAlpha: 0
|
||||
- _Progress: 0.137
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d5f7d9c99f43ce4b8ec277a4ab03080
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,64 @@
|
||||
Shader "Unlit/CircleProgressBar"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_MainTex("Texture", 2D) = "white" {}
|
||||
_Progress("Progress",Range(0,1)) = 0.5
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags
|
||||
{
|
||||
"RenderType"="Transparent"
|
||||
}
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
LOD 100
|
||||
|
||||
Pass
|
||||
{
|
||||
CGPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#include "UnityCG.cginc"
|
||||
|
||||
struct appdata
|
||||
{
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct v2f
|
||||
{
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 vertex : SV_POSITION;
|
||||
};
|
||||
|
||||
sampler2D _MainTex;
|
||||
float4 _MainTex_ST;
|
||||
float _Progress;
|
||||
|
||||
v2f vert(appdata v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag(v2f i) : SV_Target
|
||||
{
|
||||
float4 col = tex2D(_MainTex, i.uv);
|
||||
float4 final = step(1 - col.r, _Progress);
|
||||
float3 ramp = lerp(float3(0, 1, 0), float3(1, 0, 0), _Progress);
|
||||
final.rgb = final.rgb * ramp;
|
||||
final.a = col.a;
|
||||
if (1 - col.r > _Progress)
|
||||
{
|
||||
final.a = 0;
|
||||
}
|
||||
return final;
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bb8f232219e0a3a488c321b63e85281f
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -316,53 +316,79 @@ me: 那来吧。在调整之前…<br>让我看看,你现在能跑多快。
|
||||
shitou: 收到~
|
||||
|
||||
shitou: 呜——!
|
||||
|
||||
石头加起速来,引擎轰鸣着达到了跑到了某个速度。#auto_next
|
||||
<<wait 3>>
|
||||
|
||||
<<step_on_gas 0.6 4>>
|
||||
//石头加起速来,引擎轰鸣着达到了跑到了某个速度。#auto_next
|
||||
//<<wait 3>>
|
||||
me: 9800转…好高啊。
|
||||
shitou: 嘿嘿,医生,我要跑得双倍快才行哩!
|
||||
me: 双倍快?
|
||||
shitou: 对!我要比大家都快一倍!这样我才能跑双倍的货~
|
||||
|
||||
<<hide_dialog>>
|
||||
<<wait 0.5>>
|
||||
|
||||
me: ……你是想跑到20000转吗?那样要赶上火车了。
|
||||
shitou: 哈哈,我真能变成火车…那就……太酷啦!
|
||||
shitou: 开玩笑~医生!这只是一种比喻~<br>我只要能跑到12000转就够啦!
|
||||
|
||||
<<hide_dialog>>
|
||||
<<wait 0.5>>
|
||||
|
||||
me: 那么…加压应该是可以做到的。
|
||||
me:拉动左边的拉绳,就可以提升涡轮部分的转速了
|
||||
<<active_engine_pull>>
|
||||
//【加压按钮可用】#auto_next
|
||||
//<<wait 1.5>>
|
||||
|
||||
【加压按钮可用】#auto_next
|
||||
<<wait 1.5>>
|
||||
// ->加压
|
||||
|
||||
->加压
|
||||
// <<complete_task TaskManager 为动力模块进行增压>>
|
||||
|
||||
<<complete_task TaskManager 为动力模块进行增压>>
|
||||
// 你向气阀内压入气体,石头的速度变得更高了。#auto_next
|
||||
// <<wait 1>>
|
||||
|
||||
你向气阀内压入气体,石头的速度变得更高了。#auto_next
|
||||
<<wait 1>>
|
||||
// <<task_moveOut TaskManager>>
|
||||
|
||||
<<task_moveOut TaskManager>>
|
||||
// <<wait 1>>
|
||||
|
||||
<<wait 1>>
|
||||
|
||||
|
||||
//<<wait 1.5>>
|
||||
//me: 嗯…看起来一切正常?没有缺齿轮之类的报告……
|
||||
//shitou: 正常?不可能,医生。我明显感觉它有问题。
|
||||
//me: 虽然我不知道你说的会是什么问题…<br>但这确实是最有可能掉出齿轮的地方。
|
||||
//<<wait 0.5>>
|
||||
//me: 来都来了……<br>以防万一,最好让它跑一次;<br>确认它在运行状态下是没问题的。
|
||||
//<<hide_dialog>>
|
||||
//<<wait 0.5>>
|
||||
//<<MessageBoxSetText 正在运行自检……>>
|
||||
//<<wait 0.1>>
|
||||
//<<MessageBoxSetText 请将转速提高至2500RPM以进行自检!>>
|
||||
//<<wait 0.5>>
|
||||
//me: ……
|
||||
//me: 2500,哇哦。
|
||||
//shitou: 怎么了,医生?找到问题了?
|
||||
//me: 不是。正常机体的动力系统只能跑到500RPM…<br>而且还得是在劳累或者激动的情况下。
|
||||
//me: 但你能跑到2500RPM。这是一般机体的…5倍。<br>通常转到这个速度,就意味着机体要接近报废了。
|
||||
//me: 不过也不奇怪,毕竟你是需要跑货的。<br>……你简直就是一台人形货车了。
|
||||
//shitou: 嗨!我要是能天天跑到2500就好了!<br>可惜城里的红绿灯实在是太多了。
|
||||
//me: 你现在就有机会了。<br>我需要手动把你提到2500RPM,来完整测试引擎的运行能力。
|
||||
//shitou: 要开跑了吗,医生?太好啦!我最喜欢跑货了!<br>…哎呀,可惜!要是我状态完美,能边跑边唱……
|
||||
//me: 这是治疗,不是赛车。<br>让它跑起来是为了确认它到底有没有问题。
|
||||
//shitou: 不过医生…如果里面缺一个齿轮,不会有问题吗?<br>比如把其他的齿轮也甩飞出来之类的……
|
||||
//me: 按理来说不会…至少手册说不会。
|
||||
|
||||
===
|
||||
title: 调速后测速
|
||||
tags:
|
||||
colorID: 8
|
||||
group: 插入触发
|
||||
position: -158,370
|
||||
---
|
||||
shitou: 哇~好快啊,从来没有过的感觉!
|
||||
|
||||
<<hide_dialog>>
|
||||
<<wait 0.5>>
|
||||
|
||||
<<shake_camera 0.2 0.3 20>>
|
||||
石头的速度忽然掉了下来,逐渐回到怠速。
|
||||
<<wait 0.5>>
|
||||
|
||||
<<step_on_gas 0.2 0.3>>
|
||||
shitou: 啊!
|
||||
shitou: 医生…我怎么…动不了了!
|
||||
|
||||
<<hide_dialog>>
|
||||
<<wait 0.5>>
|
||||
|
||||
@@ -372,30 +398,24 @@ me: 听起来像是变速箱里的声音……我这就看看。
|
||||
<<task_moveIn TaskManager>>
|
||||
|
||||
->打开变速箱盖
|
||||
|
||||
<<switch_fix_system_to Gear>>
|
||||
<<open_gear_cover>>
|
||||
<<hide_dialog>>
|
||||
<<wait 1>>
|
||||
|
||||
你打开引擎的变速箱盖…#auto_next
|
||||
<<wait 1>>
|
||||
|
||||
<<shake_camera 0.2 0.3 20>>
|
||||
|
||||
me: 哎呀……有几个齿轮松脱了。
|
||||
|
||||
<<complete_task TaskManager 检查变速箱的异响>>
|
||||
|
||||
<<hide_dialog>>
|
||||
<<wait 1>>
|
||||
<<open_gear_panel>>
|
||||
<<wait 0.5>>
|
||||
|
||||
->拿起齿轮
|
||||
<<show_obj 变速箱唱片齿轮>>
|
||||
me: 这些齿轮表面有一部分竟然是塑胶的…<br>…看起来强度很低啊。
|
||||
【拿起齿轮端详(show obj)】
|
||||
|
||||
<<wait 0.5>>
|
||||
<<hide_obj>>
|
||||
<<hide_dialog>>
|
||||
<<wait 0.5>>
|
||||
|
||||
me: 齿轮箱里看起来也有一些不属于这里的结构…这根杆子是什么?
|
||||
shitou: 噢~?你说的是我的~唱片机吗?
|
||||
me: 唱片机……?这里不应该是变速箱吗……
|
||||
@@ -414,31 +434,26 @@ me: 无论如何,我先把这些脱落的齿轮装回去吧。
|
||||
//shitou: 噢?你说的是*那些*齿轮吗?
|
||||
//me: 什么是*那些*齿轮?
|
||||
//shitou: 嘿嘿。快把它放回去,让我演示给你看!
|
||||
|
||||
->放回去
|
||||
|
||||
<<hide_dialog>>
|
||||
<<wait 1>>
|
||||
<<close_gear_panel>>
|
||||
|
||||
// <<close_gear_panel>>
|
||||
<<complete_task TaskManager 恢复变速箱的齿轮>>
|
||||
<<task_moveOut TaskManager>>
|
||||
|
||||
<<wait 0.5>>
|
||||
|
||||
me: 好了。石头,再试试吧,跑起来。
|
||||
shitou: 该播放音乐了吗?医生!
|
||||
|
||||
// <<switch_fix_system_to Engine>>
|
||||
<<step_on_gas 0.6 3>>
|
||||
<<hide_dialog>>
|
||||
<<wait 0.5>>
|
||||
shitou: 该播放音乐了吗?医生!
|
||||
// 石头加起速来,引擎轰鸣着达到了跑到了某个速度。#auto_next
|
||||
// <<wait 2>>
|
||||
|
||||
石头加起速来,引擎轰鸣着达到了跑到了某个速度。#auto_next
|
||||
<<wait 2>>
|
||||
|
||||
<<move_needle>>
|
||||
<<wait 1>>
|
||||
<<play_loop_audio disc>>
|
||||
那根奇怪的杆子转了下来,搭在一张唱片上。#auto_next
|
||||
<<wait 2>>
|
||||
|
||||
me: 原来如此……
|
||||
|
||||
shitou: 医生,这可是我的得意改装!我一直!就喜欢音乐!可惜我~五音不全,而且引擎太吵,我听不到外边的音乐!
|
||||
@@ -452,24 +467,24 @@ me: 这倒是…很巧妙的改造。
|
||||
|
||||
<<hide_dialog>>
|
||||
<<wait 1>>
|
||||
|
||||
me: 但是,有一个问题……
|
||||
|
||||
shitou: 好了,现在可以~马力全开!
|
||||
me: 等等石头,那些齿轮...
|
||||
<<hide_dialog>>
|
||||
<<wait 0.2>>
|
||||
|
||||
<<step_on_gas 0.75 3>>
|
||||
shitou: 哇,感觉充满力量!要来了!
|
||||
<<step_on_gas 0.9 3>>
|
||||
<<pause_loop_audio>>
|
||||
<<random_play_interaction tv_in>>
|
||||
<<shake_camera 0.4 0.3 20>>
|
||||
石头的速度又掉了下来,逐渐回到怠速。#auto_next
|
||||
<<step_on_gas 0.2 0.5>>
|
||||
<<wait 1>>
|
||||
|
||||
shitou: 哎呀,医生!我又动不了了!
|
||||
me: 这就是我说的问题。刚才已经发生过一次了……
|
||||
me: 我先给你安回去吧…但你别再加速了。不然还得飞出来。
|
||||
你将齿轮装了回去。(自动)#auto_next
|
||||
<<close_gear_cover>>
|
||||
<<wait 1>>
|
||||
|
||||
<<fade_in 1>>
|
||||
<<switch_fix_system_to "Clinic">>
|
||||
<<character_fade_in_new>>
|
||||
@@ -525,21 +540,17 @@ me: 啊…那倒不贵。不过是一些铁块罢了。
|
||||
shitou: 哈哈哈!那太好了,那还等什么?医生,我们来吧。
|
||||
|
||||
<<fade_in 1>>
|
||||
<<switch_fix_system_to "Engine">>
|
||||
<<switch_fix_system_to "Gear">>
|
||||
<<fade_out 1>>
|
||||
|
||||
<<open_gear_cover>>
|
||||
me: 让我找找…镍铬齿轮…
|
||||
|
||||
<<open_gear_panel>>
|
||||
|
||||
<<add_task TaskManager 更换镍铬齿轮>>
|
||||
<<task_moveIn TaskManager>>
|
||||
|
||||
<<hide_dialog>>
|
||||
<<wait 0.5>>
|
||||
|
||||
->将镍铬齿轮替换上去
|
||||
|
||||
<<hide_dialog>>
|
||||
<<wait 1>>
|
||||
<<close_gear_panel>>
|
||||
@@ -556,32 +567,5 @@ me: 好了…再播…跑一次吧。
|
||||
<<wait 2>>
|
||||
|
||||
shitou: 呜呼!医生~我感觉~我像在飞一样!
|
||||
|
||||
//<<wait 1.5>>
|
||||
//me: 嗯…看起来一切正常?没有缺齿轮之类的报告……
|
||||
//shitou: 正常?不可能,医生。我明显感觉它有问题。
|
||||
//me: 虽然我不知道你说的会是什么问题…<br>但这确实是最有可能掉出齿轮的地方。
|
||||
//<<wait 0.5>>
|
||||
//me: 来都来了……<br>以防万一,最好让它跑一次;<br>确认它在运行状态下是没问题的。
|
||||
//<<hide_dialog>>
|
||||
//<<wait 0.5>>
|
||||
//<<MessageBoxSetText 正在运行自检……>>
|
||||
//<<wait 0.1>>
|
||||
//<<MessageBoxSetText 请将转速提高至2500RPM以进行自检!>>
|
||||
//<<wait 0.5>>
|
||||
//me: ……
|
||||
//me: 2500,哇哦。
|
||||
//shitou: 怎么了,医生?找到问题了?
|
||||
//me: 不是。正常机体的动力系统只能跑到500RPM…<br>而且还得是在劳累或者激动的情况下。
|
||||
//me: 但你能跑到2500RPM。这是一般机体的…5倍。<br>通常转到这个速度,就意味着机体要接近报废了。
|
||||
//me: 不过也不奇怪,毕竟你是需要跑货的。<br>……你简直就是一台人形货车了。
|
||||
//shitou: 嗨!我要是能天天跑到2500就好了!<br>可惜城里的红绿灯实在是太多了。
|
||||
//me: 你现在就有机会了。<br>我需要手动把你提到2500RPM,来完整测试引擎的运行能力。
|
||||
//shitou: 要开跑了吗,医生?太好啦!我最喜欢跑货了!<br>…哎呀,可惜!要是我状态完美,能边跑边唱……
|
||||
//me: 这是治疗,不是赛车。<br>让它跑起来是为了确认它到底有没有问题。
|
||||
//shitou: 不过医生…如果里面缺一个齿轮,不会有问题吗?<br>比如把其他的齿轮也甩飞出来之类的……
|
||||
//me: 按理来说不会…至少手册说不会。
|
||||
|
||||
<<jump 分析检查结果>>
|
||||
|
||||
===
|
||||
===
|
||||
+1499
-943
File diff suppressed because it is too large
Load Diff
@@ -135,6 +135,18 @@ namespace AibisDream
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 跳到下一句
|
||||
/// </summary>
|
||||
public void JumpLine()
|
||||
{
|
||||
if (!DialogCanvasManager.GetCurView().TrySkipLine())
|
||||
{
|
||||
AudioManager.Instance.StopVoice();
|
||||
DialogCanvasManager.GetCurView().NextStep();
|
||||
}
|
||||
}
|
||||
|
||||
#region 命令名
|
||||
|
||||
|
||||
@@ -68,30 +68,5 @@ namespace AibisDream
|
||||
var options = DialogOption.GeneOptions(dialogueOptions, onOptionSelected);
|
||||
DialogCanvasManager.GetCurView().ShowOptions(options);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space))
|
||||
{
|
||||
JumpLine();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 跳到下一句
|
||||
/// </summary>
|
||||
private void JumpLine()
|
||||
{
|
||||
if (_isInCommand)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!DialogCanvasManager.GetCurView().TrySkipLine())
|
||||
{
|
||||
AudioManager.Instance.StopVoice();
|
||||
DialogCanvasManager.GetCurView().NextStep();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using AibisDream.FixSystem;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.Framework
|
||||
@@ -47,14 +46,6 @@ namespace AibisDream.Framework
|
||||
{
|
||||
public void OnUpdate()
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.K))
|
||||
{
|
||||
MonoCenter.Mono.StartCoroutine(CameraKit.Instance.TransCameraAsync(new Vector3(5f, 5f, -10), 5, 5f));
|
||||
}
|
||||
|
||||
if (Input.GetKeyDown(KeyCode.A))
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ namespace AibisDream
|
||||
{
|
||||
NextYarn,
|
||||
PlugIn,
|
||||
PlugOut
|
||||
PlugOut,
|
||||
Menu
|
||||
}
|
||||
|
||||
public enum DialogEventEnum
|
||||
@@ -17,8 +18,7 @@ namespace AibisDream
|
||||
LineShowed,
|
||||
LineEnd,
|
||||
OptionShow,
|
||||
OptionSelected,
|
||||
Command
|
||||
OptionSelected
|
||||
}
|
||||
|
||||
public enum InteractionEventEnum
|
||||
|
||||
@@ -34,11 +34,6 @@ namespace AibisDream
|
||||
_trigger.Register(EventTriggerType.Drag, OnDrag);
|
||||
}
|
||||
|
||||
public float GetCurOil()
|
||||
{
|
||||
return Mathf.Abs((transform.localPosition.y - _initPos.y) / maxDistance);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (_isDragging)
|
||||
@@ -58,15 +53,10 @@ namespace AibisDream
|
||||
// 如果拖拽点在下方,限速移动
|
||||
else
|
||||
{
|
||||
if (Mathf.Abs(_dragPoint.y - transform.position.y) / Time.deltaTime >
|
||||
_engineSystem.engineConfig.pullMaxSpeed)
|
||||
{
|
||||
curY = transform.position.y - _engineSystem.engineConfig.pullMaxSpeed * Time.deltaTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
curY = _dragPoint.y;
|
||||
}
|
||||
curY = _dragPoint.y;
|
||||
var pullDelta = Mathf.Abs(curY - transform.position.y) / maxDistance;
|
||||
// 将增量同步给Engine
|
||||
_engineSystem.AddAirPress(pullDelta);
|
||||
}
|
||||
|
||||
transform.position = new Vector3(transform.position.x, curY, transform.position.y);
|
||||
@@ -75,7 +65,8 @@ namespace AibisDream
|
||||
private void OnDrag(BaseEventData data)
|
||||
{
|
||||
// 这里是一些阻碍拖动的情况
|
||||
|
||||
if (!IsActive) return;
|
||||
|
||||
// 正常情况下不会出错
|
||||
if (data is not PointerEventData pointerData) return;
|
||||
|
||||
@@ -85,6 +76,9 @@ namespace AibisDream
|
||||
|
||||
private void OnBeginDrag(BaseEventData data)
|
||||
{
|
||||
// 这里是一些阻碍拖动的情况
|
||||
if (!IsActive) return;
|
||||
|
||||
// 正常情况下不会出错
|
||||
if (data is not PointerEventData pointerData) return;
|
||||
// 设置拖拽目标点
|
||||
@@ -112,7 +106,7 @@ namespace AibisDream
|
||||
_dragPoint = new Vector3(transform.position.x, dragY, transform.position.z);
|
||||
}
|
||||
|
||||
public bool IsActive => true;
|
||||
public bool IsActive => _engineSystem.isPullActive;
|
||||
|
||||
public bool IsAvailable => _engineSystem.isAvailable;
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using AibisDream.FixSystem;
|
||||
using AibisDream.Framework;
|
||||
using AibisDream.Utility;
|
||||
using Cinemachine;
|
||||
using DG.Tweening;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
@@ -10,15 +12,16 @@ namespace AibisDream
|
||||
{
|
||||
public class EngineSystem : MonoBehaviour
|
||||
{
|
||||
private CordPull _cordPull;
|
||||
private StaticGear _centerGear;
|
||||
|
||||
[Header("系统配置")] public EngineConfig engineConfig;
|
||||
[Header("系统数据")] public EngineData engineData;
|
||||
|
||||
public bool isAvailable;
|
||||
public bool isPullActive;
|
||||
private bool _isSuccess;
|
||||
|
||||
[HideInInspector] public UnityEvent<float> updateSpeedEvent = new();
|
||||
public float curSpeed;
|
||||
public float targetSpeed=0.95f;
|
||||
[HideInInspector] public UnityEvent<float, float> updateSpeedEvent = new();
|
||||
|
||||
[SerializeField] private float coverMoveDuration = 5f;
|
||||
|
||||
@@ -27,10 +30,9 @@ namespace AibisDream
|
||||
private void Awake()
|
||||
{
|
||||
FixSystemCenter.SystemDic.Register(this);
|
||||
_cordPull = transform.Find("拉绳").GetComponent<CordPull>();
|
||||
_centerGear = transform.Find("中央齿轮").GetComponent<StaticGear>();
|
||||
_centerGear.initSpeed = engineConfig.gearSpeed;
|
||||
|
||||
|
||||
// 注册相机
|
||||
var virtualCam = transform.Find("Engine Camera").GetComponentInChildren<ICinemachineCamera>();
|
||||
CameraKit.Instance.RegisterCamera(CameraEnum.Engine, virtualCam);
|
||||
@@ -38,36 +40,41 @@ namespace AibisDream
|
||||
|
||||
private void Start()
|
||||
{
|
||||
// 初始化数据
|
||||
engineData = new EngineData
|
||||
{
|
||||
config = engineConfig
|
||||
};
|
||||
_centerGear.StartRotate();
|
||||
}
|
||||
|
||||
public IEnumerator StepOnGas(float targetSpeed, float duration)
|
||||
{
|
||||
// 逐渐加速
|
||||
yield return DOTween.To(() => curSpeed, x => { curSpeed = x; }, targetSpeed, duration).WaitForCompletion();
|
||||
}
|
||||
|
||||
public void AddAirPress(float speedDelta)
|
||||
{
|
||||
curSpeed = CommonUtil.Limit(curSpeed + speedDelta / engineConfig.pullCount, 1, 0);
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
CameraKit.Instance.UnRegisterCamera(CameraEnum.Engine);
|
||||
}
|
||||
|
||||
public void Update()
|
||||
private void Update()
|
||||
{
|
||||
// 收集数据
|
||||
engineData.curOil = _cordPull.GetCurOil();
|
||||
// 更新数据
|
||||
engineData.CalcSpeed();
|
||||
|
||||
// 传递速度
|
||||
updateSpeedEvent.Invoke(engineData.GetRealSpeed());
|
||||
|
||||
if (engineData.CheckSuccess())
|
||||
updateSpeedEvent.Invoke(curSpeed, GetSpeedScale());
|
||||
if (curSpeed >= targetSpeed && !_isSuccess)
|
||||
{
|
||||
Debug.Log("引擎成功");
|
||||
_isSuccess = true;
|
||||
isPullActive = false;
|
||||
DialogController.Instance?.StartDialogNode("EngineSuccess");
|
||||
}
|
||||
}
|
||||
|
||||
private float GetSpeedScale()
|
||||
{
|
||||
return 1 + curSpeed * engineConfig.speedRate;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 开启系统交互
|
||||
/// </summary>
|
||||
@@ -88,70 +95,10 @@ namespace AibisDream
|
||||
[Serializable]
|
||||
public struct EngineConfig
|
||||
{
|
||||
[Header("油门倍率")] public float oilRate;
|
||||
[Header("阻力倍率")] public float resistance;
|
||||
[Header("齿轮基础速度")] public float gearSpeed;
|
||||
[Header("齿轮速度倍率")] public float speedRate;
|
||||
[Header("成功所需时间")] public float targetDuration;
|
||||
[Header("拉满几次到全速")] public float pullCount;
|
||||
[Header("拉绳最大速度")] public float pullMaxSpeed;
|
||||
[Header("拉绳回缩速度")] public float returnSpeed;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public struct EngineData
|
||||
{
|
||||
public EngineConfig config;
|
||||
public float curSpeed;
|
||||
public float curOil;
|
||||
public float curAcceleration;
|
||||
public bool isSuccess;
|
||||
public float reachTargetTime;
|
||||
|
||||
public void CalcSpeed()
|
||||
{
|
||||
if (curOil != 0)
|
||||
{
|
||||
curAcceleration = curAcceleration < 0 ? 0 : curAcceleration;
|
||||
curAcceleration = CommonUtil.Limit(curOil * config.oilRate * Time.deltaTime + curAcceleration, 100, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
curAcceleration = -config.resistance * (1f + curSpeed);
|
||||
}
|
||||
|
||||
|
||||
curSpeed = CommonUtil.Limit(curSpeed + curAcceleration * Time.deltaTime, 1, 0);
|
||||
}
|
||||
|
||||
public bool CheckSuccess()
|
||||
{
|
||||
// 已经成功就不用校验了
|
||||
if (isSuccess) return false;
|
||||
|
||||
if (curSpeed >= 0.95f)
|
||||
{
|
||||
reachTargetTime += Time.deltaTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
reachTargetTime = 0;
|
||||
}
|
||||
|
||||
// 如果速度达标时间足够就判断成功
|
||||
if (!(reachTargetTime >= config.targetDuration)) return false;
|
||||
|
||||
isSuccess = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取处理后的速度
|
||||
/// </summary>
|
||||
/// <returns>速度</returns>
|
||||
public float GetRealSpeed()
|
||||
{
|
||||
return 1 + curSpeed * config.speedRate;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections;
|
||||
using AibisDream.FixSystem;
|
||||
using UnityEngine;
|
||||
using Yarn.Unity;
|
||||
|
||||
@@ -6,6 +7,8 @@ namespace AibisDream
|
||||
{
|
||||
public static class EngineYarnCommand
|
||||
{
|
||||
private static EngineSystem EngineSystem => FixSystemCenter.SystemDic.Get<EngineSystem>();
|
||||
|
||||
// 打开引擎盖
|
||||
[YarnCommand("open_engine_cover")]
|
||||
public static IEnumerator OpenEngineCover()
|
||||
@@ -21,5 +24,26 @@ namespace AibisDream
|
||||
Debug.LogWarning("关闭引擎盖命令已废弃,请尽快删除");
|
||||
yield break;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 踩油门
|
||||
/// </summary>
|
||||
/// <param name="targetSpeed">目标速度</param>
|
||||
/// <param name="duration">用时</param>
|
||||
/// <returns>协程</returns>
|
||||
[YarnCommand("step_on_gas")]
|
||||
public static IEnumerator StepOnGas(float targetSpeed, float duration)
|
||||
{
|
||||
return EngineSystem.StepOnGas(targetSpeed, duration);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 激活拉绳
|
||||
/// </summary>
|
||||
[YarnCommand("active_engine_pull")]
|
||||
public static void ActivePull()
|
||||
{
|
||||
EngineSystem.isPullActive = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,30 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine;
|
||||
using RainbowArt.CleanFlatUI;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
public class SpeedDashboard : MonoBehaviour
|
||||
{
|
||||
private Transform _pointer;
|
||||
|
||||
[SerializeField] private float leftRot;
|
||||
[SerializeField] private float rightRot;
|
||||
private Material _material;
|
||||
private EngineSystem _engineSystem;
|
||||
|
||||
protected void OnStart()
|
||||
{
|
||||
_pointer = transform.Find("Pointer");
|
||||
private ProgressBarGridCircular progress;
|
||||
private static readonly int Progress1 = Shader.PropertyToID("_Progress");
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_engineSystem = transform.parent.GetComponent<EngineSystem>();
|
||||
_material = _engineSystem.transform.Find("心脏引擎").GetComponent<SpriteRenderer>().material;
|
||||
progress=FindObjectOfType<ProgressBarGridCircular>();
|
||||
|
||||
_engineSystem.updateSpeedEvent.AddListener(OnSpeedChange);
|
||||
}
|
||||
|
||||
protected void UpdateDashboard(EngineData data)
|
||||
|
||||
private void OnSpeedChange(float originSpeed, float speedScale)
|
||||
{
|
||||
var targetRot = (rightRot - leftRot) * data.curSpeed + leftRot;
|
||||
|
||||
_pointer.eulerAngles = new Vector3(0, 0, -targetRot);
|
||||
_material.SetFloat("_VibrateFade", originSpeed);
|
||||
progress.CurrentValue=Mathf.RoundToInt(originSpeed * 50);
|
||||
//_material.SetFloat(Progress1, originSpeed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 73c497ccb39448718a07911a5e674d5f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 4d9cead340d34293bf0fd9631aede238
|
||||
timeCreated: 1737626210
|
||||
@@ -22,12 +22,8 @@ namespace AibisDream
|
||||
.SetEase(Ease.Linear)
|
||||
.SetLoops(-1, LoopType.Incremental);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 为旋转加速
|
||||
/// </summary>
|
||||
/// <param name="speed">速度倍率</param>
|
||||
private void UpdateSpeedScale(float speed)
|
||||
|
||||
private void UpdateSpeedScale(float originSpeed, float speed)
|
||||
{
|
||||
_rotateTween.timeScale = speed;
|
||||
}
|
||||
|
||||
@@ -39,6 +39,8 @@ namespace AibisDream
|
||||
private bool _isTargetReached;
|
||||
private bool _isDiscReady;
|
||||
|
||||
public float initSpeed = 1;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Init();
|
||||
@@ -65,6 +67,10 @@ namespace AibisDream
|
||||
var panelShafts = _panel.GetComponentsInChildren<Shaft>();
|
||||
_shaftGraph = new ShaftGraph(shafts, panelShafts);
|
||||
|
||||
var engine = FixSystemCenter.SystemDic.Get<EngineSystem>();
|
||||
_shaftGraph.StartRotate(initSpeed);
|
||||
engine.updateSpeedEvent.AddListener(_shaftGraph.Accelerate);
|
||||
|
||||
_panel.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,9 +23,6 @@ namespace AibisDream
|
||||
|
||||
[SerializeField] private Gear childGear;
|
||||
|
||||
// 初始角速度
|
||||
[SerializeField] private float initialSpeed;
|
||||
|
||||
// 目标角速度
|
||||
[SerializeField] private float targetSpeed;
|
||||
|
||||
@@ -70,8 +67,7 @@ namespace AibisDream
|
||||
|
||||
// 如果带齿轮,要根据齿轮类型生成
|
||||
childGear = InitGear(initRadius, initSprite, isInitGearBroken, isInitGearDisc);
|
||||
|
||||
speed = initialSpeed;
|
||||
|
||||
childGear.UpdateRotation(speed, _speedScale);
|
||||
}
|
||||
|
||||
@@ -274,7 +270,6 @@ namespace AibisDream
|
||||
isInitGearBroken = levelData.isGearBroken;
|
||||
isInitGearDisc = levelData.isDisc;
|
||||
discIdx = levelData.discIdx;
|
||||
initialSpeed = levelData.initialSpeed;
|
||||
targetSpeed = levelData.targetSpeed;
|
||||
initRadius = levelData.radius;
|
||||
}
|
||||
@@ -291,7 +286,6 @@ namespace AibisDream
|
||||
isGearBroken = isInitGearBroken,
|
||||
isDisc = isInitGearDisc,
|
||||
discIdx = discIdx,
|
||||
initialSpeed = initialSpeed,
|
||||
targetSpeed = targetSpeed,
|
||||
radius = initRadius
|
||||
};
|
||||
@@ -315,7 +309,6 @@ namespace AibisDream
|
||||
|
||||
// 关卡数据
|
||||
public ShaftType shaftType;
|
||||
public float initialSpeed;
|
||||
public float targetSpeed;
|
||||
public bool hasChildGear;
|
||||
public float radius;
|
||||
|
||||
@@ -43,6 +43,24 @@ namespace AibisDream
|
||||
UpdateSpeed();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化速度
|
||||
/// </summary>
|
||||
/// <param name="initSpeed">初始速度</param>
|
||||
public void StartRotate(float initSpeed)
|
||||
{
|
||||
_vertexArray[_rootIdx].speed = initSpeed;
|
||||
UpdateSpeed();
|
||||
}
|
||||
|
||||
public void Accelerate(float originSpeed, float speed)
|
||||
{
|
||||
foreach (var shaft in _vertexArray)
|
||||
{
|
||||
if (shaft.HasChildGear()) shaft.UpdateSpeedScale(speed);
|
||||
}
|
||||
}
|
||||
|
||||
private int FindDriverIdx()
|
||||
{
|
||||
for (int i = 0; i < _vertexSize; i++)
|
||||
@@ -261,17 +279,5 @@ namespace AibisDream
|
||||
|
||||
return isShaftAvailable;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通过引擎系统加速
|
||||
/// </summary>
|
||||
/// <param name="curSpeed">当前速度</param>
|
||||
private void Accelerate(float curSpeed)
|
||||
{
|
||||
foreach (var shaft in _vertexArray)
|
||||
{
|
||||
if (shaft.HasChildGear()) shaft.UpdateSpeedScale(1 + curSpeed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,13 +15,13 @@ namespace AibisDream
|
||||
public Sprite nextTalk, talking, option, interactive, holding, disable, eye;
|
||||
|
||||
private Image _cursor;
|
||||
private RectTransform _cursorCanvas;
|
||||
|
||||
#region 状态相关
|
||||
|
||||
private Coroutine _switchCoroutine;
|
||||
private CursorState _curState = CursorState.Default;
|
||||
private bool _isTalking;
|
||||
[HideInInspector] public bool isInMenu;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -59,12 +59,18 @@ namespace AibisDream
|
||||
private void InitRefs()
|
||||
{
|
||||
_cursor = transform.Find("Cursor").GetComponent<Image>();
|
||||
_cursorCanvas = GetComponent<RectTransform>();
|
||||
}
|
||||
|
||||
private void RegisterEvent()
|
||||
{
|
||||
// 此处监听所有可能对鼠标状态产生影响的事件
|
||||
RegisterDialogEvent();
|
||||
RegisterTriggerEvent();
|
||||
RegisterMenu();
|
||||
}
|
||||
|
||||
private void RegisterDialogEvent()
|
||||
{
|
||||
// 对话相关
|
||||
_unRegisters.Add(EnumEventSystem.Global.Register<DialogEventEnum, DialogLine>(DialogEventEnum.LineStart,
|
||||
OnLineStart));
|
||||
@@ -74,7 +80,10 @@ namespace AibisDream
|
||||
_unRegisters.Add(
|
||||
EnumEventSystem.Global.Register<DialogEventEnum, DialogLine>(DialogEventEnum.OptionSelected,
|
||||
OnOptionSelect));
|
||||
}
|
||||
|
||||
private void RegisterTriggerEvent()
|
||||
{
|
||||
// 交互相关
|
||||
_unRegisters.Add(EnumEventSystem.Global.Register(InteractionEventEnum.Start, OnInteractiveStart));
|
||||
_unRegisters.Add(EnumEventSystem.Global.Register(InteractionEventEnum.End, OnInteractiveEnd));
|
||||
@@ -89,6 +98,22 @@ namespace AibisDream
|
||||
EnumEventSystem.Global.Register<TriggerEnum, IInteraction>(TriggerEnum.PointerUp, OnPointerUp));
|
||||
}
|
||||
|
||||
private void RegisterMenu()
|
||||
{
|
||||
_unRegisters.Add(EnumEventSystem.Global.Register<EventEnum, bool>(EventEnum.Menu, OnMenuChange));
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space))
|
||||
{
|
||||
if (_isTalking && !isInMenu)
|
||||
{
|
||||
DialogController.Instance.JumpLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
// // 将虚拟指针与鼠标位置同步
|
||||
@@ -190,6 +215,15 @@ namespace AibisDream
|
||||
|
||||
#endregion
|
||||
|
||||
#region 菜单打开
|
||||
|
||||
private void OnMenuChange(bool isMenuOpen)
|
||||
{
|
||||
isInMenu = isMenuOpen;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 指针切换
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -162,6 +162,7 @@ namespace AibisDream
|
||||
{
|
||||
var logObj = transform.Find("Dialogue Log").gameObject;
|
||||
logObj.SetActive(!logObj.activeSelf);
|
||||
EnumEventSystem.Global.Send(EventEnum.Menu, logObj.activeSelf);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user