From 2825fbef474d3bf00a17b30be2b47a2b91baf429 Mon Sep 17 00:00:00 2001
From: Ding Yuntian <1491671119@qq.com>
Date: Thu, 23 Jan 2025 18:32:25 +0800
Subject: [PATCH] =?UTF-8?q?=E5=BC=95=E6=93=8E=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Assets/Resources/Art/Fix/20250123-164940.psb | 3 +
.../Art/Fix/20250123-164940.psb.meta | 242 ++++++++++++++++++
Assets/Resources/Materials/FadeRing.mat | 50 ++++
Assets/Resources/Materials/FadeRing.mat.meta | 8 +
Assets/Resources/Shader/FadeRing.shader | 64 +++++
Assets/Resources/Shader/FadeRing.shader.meta | 9 +
Assets/Scenes/ExpressFixScene.unity | 228 ++++++++++++++---
.../Scripts/Dialog System/DialogController.cs | 12 +
Assets/Scripts/Dialog System/LineView.cs | 25 --
.../Scripts/FixSystemNew/FixSystemCenter.cs | 2 +-
.../Scripts/Framework/OtherKit/MonoCenter.cs | 9 -
Assets/Scripts/Game Loop/EventEnums.cs | 6 +-
Assets/Scripts/MiniGame/Engine/CordPull.cs | 26 +-
.../Scripts/MiniGame/Engine/EngineSystem.cs | 112 +++-----
.../MiniGame/Engine/EngineYarnCommand.cs | 24 ++
.../Scripts/MiniGame/Engine/SpeedDashboard.cs | 27 +-
.../MiniGame/Engine/SpeedDashboard.cs.meta | 14 +-
Assets/Scripts/MiniGame/Engine/StaticGear.cs | 8 +-
Assets/Scripts/MiniGame/Gear/GearSystem.cs | 6 +
Assets/Scripts/MiniGame/Gear/Shaft.cs | 9 +-
Assets/Scripts/MiniGame/Gear/ShaftGraph.cs | 30 ++-
Assets/Scripts/UI/Cursor/CursorManager.cs | 38 ++-
.../UI/DialogUI/DialogCanvasManager.cs | 1 +
23 files changed, 726 insertions(+), 227 deletions(-)
create mode 100644 Assets/Resources/Art/Fix/20250123-164940.psb
create mode 100644 Assets/Resources/Art/Fix/20250123-164940.psb.meta
create mode 100644 Assets/Resources/Materials/FadeRing.mat
create mode 100644 Assets/Resources/Materials/FadeRing.mat.meta
create mode 100644 Assets/Resources/Shader/FadeRing.shader
create mode 100644 Assets/Resources/Shader/FadeRing.shader.meta
diff --git a/Assets/Resources/Art/Fix/20250123-164940.psb b/Assets/Resources/Art/Fix/20250123-164940.psb
new file mode 100644
index 000000000..53723ee53
--- /dev/null
+++ b/Assets/Resources/Art/Fix/20250123-164940.psb
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:11655b5e77152ef26c1226f17c9fa0092f94d37fac5e81c410660167fa939c4b
+size 5834369
diff --git a/Assets/Resources/Art/Fix/20250123-164940.psb.meta b/Assets/Resources/Art/Fix/20250123-164940.psb.meta
new file mode 100644
index 000000000..c560bb593
--- /dev/null
+++ b/Assets/Resources/Art/Fix/20250123-164940.psb.meta
@@ -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: []
diff --git a/Assets/Resources/Materials/FadeRing.mat b/Assets/Resources/Materials/FadeRing.mat
new file mode 100644
index 000000000..3bf489852
--- /dev/null
+++ b/Assets/Resources/Materials/FadeRing.mat
@@ -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: []
diff --git a/Assets/Resources/Materials/FadeRing.mat.meta b/Assets/Resources/Materials/FadeRing.mat.meta
new file mode 100644
index 000000000..4df5ace33
--- /dev/null
+++ b/Assets/Resources/Materials/FadeRing.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2d5f7d9c99f43ce4b8ec277a4ab03080
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Shader/FadeRing.shader b/Assets/Resources/Shader/FadeRing.shader
new file mode 100644
index 000000000..ff983b5e7
--- /dev/null
+++ b/Assets/Resources/Shader/FadeRing.shader
@@ -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
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Resources/Shader/FadeRing.shader.meta b/Assets/Resources/Shader/FadeRing.shader.meta
new file mode 100644
index 000000000..b4558876c
--- /dev/null
+++ b/Assets/Resources/Shader/FadeRing.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: bb8f232219e0a3a488c321b63e85281f
+ShaderImporter:
+ externalObjects: {}
+ defaultTextures: []
+ nonModifiableTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/ExpressFixScene.unity b/Assets/Scenes/ExpressFixScene.unity
index 57cab7e87..bc679010f 100644
--- a/Assets/Scenes/ExpressFixScene.unity
+++ b/Assets/Scenes/ExpressFixScene.unity
@@ -555,6 +555,103 @@ Transform:
m_CorrespondingSourceObject: {fileID: 2309837242789316790, guid: 92aec29b557d59a4ca5363aadd06c7bb, type: 3}
m_PrefabInstance: {fileID: 154381820}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &158974636
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 158974637}
+ - component: {fileID: 158974638}
+ - component: {fileID: 158974639}
+ m_Layer: 0
+ m_Name: "\u6E10\u53D8\u73AF"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &158974637
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 158974636}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -3.164, y: 2.846, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1112213369}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &158974638
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 158974636}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 2d5f7d9c99f43ce4b8ec277a4ab03080, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 1134468525
+ m_SortingLayer: 10
+ m_SortingOrder: 5
+ m_Sprite: {fileID: 3967710112523861117, guid: 64008f2c27d35ac409386015a6bb5887, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 3.646, y: 2.254}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!114 &158974639
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 158974636}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4d9cead340d34293bf0fd9631aede238, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &160015711
GameObject:
m_ObjectHideFlags: 0
@@ -1671,7 +1768,7 @@ Transform:
m_GameObject: {fileID: 463110380}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -7.8, y: 0.406, z: 0}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -2118,6 +2215,90 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
maxDistance: 0.8
+--- !u!1 &535044715
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 535044717}
+ - component: {fileID: 535044716}
+ m_Layer: 0
+ m_Name: "\u8EAB\u4F53\u7EF4\u4FEE\u754C\u9762\u5BFC\u51FA_1227"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!212 &535044716
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 535044715}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: d461b69b519107a4c8d7203943963833, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 38.399998, y: 21.599998}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 0
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!4 &535044717
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 535044715}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 31.557453, y: -1.5650738, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &536896723
GameObject:
m_ObjectHideFlags: 0
@@ -3657,14 +3838,13 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 885292092}
- - component: {fileID: 885292093}
m_Layer: 0
m_Name: Speed Dashboard
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!4 &885292092
Transform:
m_ObjectHideFlags: 0
@@ -3674,7 +3854,7 @@ Transform:
m_GameObject: {fileID: 885292091}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 5.0550704, y: 0.47555804, z: 0}
+ m_LocalPosition: {x: -5.199, y: 2.197, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -3682,20 +3862,6 @@ Transform:
- {fileID: 463110381}
m_Father: {fileID: 1112213369}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &885292093
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 885292091}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 73c497ccb39448718a07911a5e674d5f, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- leftRot: 0
- rightRot: 137
--- !u!1 &900787527
GameObject:
m_ObjectHideFlags: 0
@@ -3722,7 +3888,7 @@ Transform:
m_GameObject: {fileID: 900787527}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -7.792, y: 0.406, z: 0}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -4018,6 +4184,7 @@ Transform:
- {fileID: 885292092}
- {fileID: 5177406695049049041}
- {fileID: 13903366}
+ - {fileID: 158974637}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1112213371
@@ -4033,28 +4200,14 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
engineConfig:
- oilRate: 0.5
- resistance: 0.1
gearSpeed: 0.1
speedRate: 15
- targetDuration: 2
+ pullCount: 5
pullMaxSpeed: 1.2
returnSpeed: 5
- engineData:
- config:
- oilRate: 0
- resistance: 0
- gearSpeed: 0
- speedRate: 0
- targetDuration: 0
- pullMaxSpeed: 0
- returnSpeed: 0
- curSpeed: 0
- curOil: 0
- curAcceleration: 0
- isSuccess: 0
- reachTargetTime: 0
isAvailable: 0
+ isPullActive: 0
+ curSpeed: 0
updateSpeedEvent:
m_PersistentCalls:
m_Calls: []
@@ -12150,7 +12303,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4214753503693131867, guid: 13f00ab6092291d49a9312e52873d80b, type: 3}
propertyPath: m_IsActive
- value: 0
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7037918505330246345, guid: 13f00ab6092291d49a9312e52873d80b, type: 3}
propertyPath: field of view
@@ -12263,3 +12416,4 @@ SceneRoots:
- {fileID: 1112213369}
- {fileID: 5393568355081744312}
- {fileID: 9210352354887959608}
+ - {fileID: 535044717}
diff --git a/Assets/Scripts/Dialog System/DialogController.cs b/Assets/Scripts/Dialog System/DialogController.cs
index 9d398db03..09f60ec37 100644
--- a/Assets/Scripts/Dialog System/DialogController.cs
+++ b/Assets/Scripts/Dialog System/DialogController.cs
@@ -135,6 +135,18 @@ namespace AibisDream
return false;
}
}
+
+ ///
+ /// 跳到下一句
+ ///
+ public void JumpLine()
+ {
+ if (!DialogCanvasManager.GetCurView().TrySkipLine())
+ {
+ AudioManager.Instance.StopVoice();
+ DialogCanvasManager.GetCurView().NextStep();
+ }
+ }
#region 命令名
diff --git a/Assets/Scripts/Dialog System/LineView.cs b/Assets/Scripts/Dialog System/LineView.cs
index 559ccd58c..56701b942 100644
--- a/Assets/Scripts/Dialog System/LineView.cs
+++ b/Assets/Scripts/Dialog System/LineView.cs
@@ -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();
- }
- }
-
- ///
- /// 跳到下一句
- ///
- private void JumpLine()
- {
- if (_isInCommand)
- {
- return;
- }
-
- if (!DialogCanvasManager.GetCurView().TrySkipLine())
- {
- AudioManager.Instance.StopVoice();
- DialogCanvasManager.GetCurView().NextStep();
- }
- }
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/FixSystemNew/FixSystemCenter.cs b/Assets/Scripts/FixSystemNew/FixSystemCenter.cs
index ea6e868df..56d81b2e1 100644
--- a/Assets/Scripts/FixSystemNew/FixSystemCenter.cs
+++ b/Assets/Scripts/FixSystemNew/FixSystemCenter.cs
@@ -16,7 +16,7 @@ namespace AibisDream.FixSystem
// 初始化状态机
StateMachine = new FixStateMachine();
- StartCoroutine(StateMachine.SwitchState(FixState.Clinic));
+ StartCoroutine(StateMachine.SwitchState(FixState.Engine));
}
public override void OnSingletonDestroy()
diff --git a/Assets/Scripts/Framework/OtherKit/MonoCenter.cs b/Assets/Scripts/Framework/OtherKit/MonoCenter.cs
index e937f82f1..0d5ccd764 100644
--- a/Assets/Scripts/Framework/OtherKit/MonoCenter.cs
+++ b/Assets/Scripts/Framework/OtherKit/MonoCenter.cs
@@ -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))
- {
- }
}
}
diff --git a/Assets/Scripts/Game Loop/EventEnums.cs b/Assets/Scripts/Game Loop/EventEnums.cs
index 7afd3390e..cae81e375 100644
--- a/Assets/Scripts/Game Loop/EventEnums.cs
+++ b/Assets/Scripts/Game Loop/EventEnums.cs
@@ -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
diff --git a/Assets/Scripts/MiniGame/Engine/CordPull.cs b/Assets/Scripts/MiniGame/Engine/CordPull.cs
index 7d9f7446c..d36cf2e16 100644
--- a/Assets/Scripts/MiniGame/Engine/CordPull.cs
+++ b/Assets/Scripts/MiniGame/Engine/CordPull.cs
@@ -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;
diff --git a/Assets/Scripts/MiniGame/Engine/EngineSystem.cs b/Assets/Scripts/MiniGame/Engine/EngineSystem.cs
index bee4d96af..226580568 100644
--- a/Assets/Scripts/MiniGame/Engine/EngineSystem.cs
+++ b/Assets/Scripts/MiniGame/Engine/EngineSystem.cs
@@ -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,15 @@ 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 updateSpeedEvent = new();
+ public float curSpeed;
+ [HideInInspector] public UnityEvent updateSpeedEvent = new();
[SerializeField] private float coverMoveDuration = 5f;
@@ -27,10 +29,9 @@ namespace AibisDream
private void Awake()
{
FixSystemCenter.SystemDic.Register(this);
- _cordPull = transform.Find("拉绳").GetComponent();
_centerGear = transform.Find("中央齿轮").GetComponent();
_centerGear.initSpeed = engineConfig.gearSpeed;
-
+
// 注册相机
var virtualCam = transform.Find("Engine Camera").GetComponentInChildren();
CameraKit.Instance.RegisterCamera(CameraEnum.Engine, virtualCam);
@@ -38,36 +39,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 >= 0.99f && !_isSuccess)
{
- Debug.Log("引擎成功");
+ _isSuccess = true;
+ isPullActive = false;
DialogController.Instance?.StartDialogNode("EngineSuccess");
}
}
+ private float GetSpeedScale()
+ {
+ return 1 + curSpeed * engineConfig.speedRate;
+ }
+
///
/// 开启系统交互
///
@@ -88,70 +94,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;
- }
-
-
- ///
- /// 获取处理后的速度
- ///
- /// 速度
- public float GetRealSpeed()
- {
- return 1 + curSpeed * config.speedRate;
- }
- }
}
\ No newline at end of file
diff --git a/Assets/Scripts/MiniGame/Engine/EngineYarnCommand.cs b/Assets/Scripts/MiniGame/Engine/EngineYarnCommand.cs
index 9611397ec..02920c84a 100644
--- a/Assets/Scripts/MiniGame/Engine/EngineYarnCommand.cs
+++ b/Assets/Scripts/MiniGame/Engine/EngineYarnCommand.cs
@@ -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();
+
// 打开引擎盖
[YarnCommand("open_engine_cover")]
public static IEnumerator OpenEngineCover()
@@ -21,5 +24,26 @@ namespace AibisDream
Debug.LogWarning("关闭引擎盖命令已废弃,请尽快删除");
yield break;
}
+
+ ///
+ /// 踩油门
+ ///
+ /// 目标速度
+ /// 用时
+ /// 协程
+ [YarnCommand("step_on_gas")]
+ public static IEnumerator StepOnGas(float targetSpeed, float duration)
+ {
+ return EngineSystem.StepOnGas(targetSpeed, duration);
+ }
+
+ ///
+ /// 激活拉绳
+ ///
+ [YarnCommand("active_engine_pull")]
+ public static void ActivePull()
+ {
+ EngineSystem.isPullActive = true;
+ }
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/MiniGame/Engine/SpeedDashboard.cs b/Assets/Scripts/MiniGame/Engine/SpeedDashboard.cs
index c2749ba35..39c46e80f 100644
--- a/Assets/Scripts/MiniGame/Engine/SpeedDashboard.cs
+++ b/Assets/Scripts/MiniGame/Engine/SpeedDashboard.cs
@@ -1,25 +1,24 @@
-using UnityEngine;
+using UnityEngine;
namespace AibisDream
{
public class SpeedDashboard : MonoBehaviour
{
- private Transform _pointer;
-
- [SerializeField] private float leftRot;
- [SerializeField] private float rightRot;
+ private Material _material;
+ private EngineSystem _engineSystem;
+ private static readonly int Progress1 = Shader.PropertyToID("_Progress");
- protected void OnStart()
+ private void Awake()
{
- _pointer = transform.Find("Pointer");
+ _material = GetComponent().material;
+ _engineSystem = transform.parent.GetComponent();
+
+ _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(Progress1, originSpeed);
}
}
-}
-
+}
\ No newline at end of file
diff --git a/Assets/Scripts/MiniGame/Engine/SpeedDashboard.cs.meta b/Assets/Scripts/MiniGame/Engine/SpeedDashboard.cs.meta
index c1a0126ef..cf176307d 100644
--- a/Assets/Scripts/MiniGame/Engine/SpeedDashboard.cs.meta
+++ b/Assets/Scripts/MiniGame/Engine/SpeedDashboard.cs.meta
@@ -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
\ No newline at end of file
diff --git a/Assets/Scripts/MiniGame/Engine/StaticGear.cs b/Assets/Scripts/MiniGame/Engine/StaticGear.cs
index 1a807b3b7..8c2e35568 100644
--- a/Assets/Scripts/MiniGame/Engine/StaticGear.cs
+++ b/Assets/Scripts/MiniGame/Engine/StaticGear.cs
@@ -22,12 +22,8 @@ namespace AibisDream
.SetEase(Ease.Linear)
.SetLoops(-1, LoopType.Incremental);
}
-
- ///
- /// 为旋转加速
- ///
- /// 速度倍率
- private void UpdateSpeedScale(float speed)
+
+ private void UpdateSpeedScale(float originSpeed, float speed)
{
_rotateTween.timeScale = speed;
}
diff --git a/Assets/Scripts/MiniGame/Gear/GearSystem.cs b/Assets/Scripts/MiniGame/Gear/GearSystem.cs
index 25041a4b5..f7fa72685 100644
--- a/Assets/Scripts/MiniGame/Gear/GearSystem.cs
+++ b/Assets/Scripts/MiniGame/Gear/GearSystem.cs
@@ -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();
_shaftGraph = new ShaftGraph(shafts, panelShafts);
+ var engine = FixSystemCenter.SystemDic.Get();
+ _shaftGraph.StartRotate(initSpeed);
+ engine.updateSpeedEvent.AddListener(_shaftGraph.Accelerate);
+
_panel.gameObject.SetActive(false);
}
diff --git a/Assets/Scripts/MiniGame/Gear/Shaft.cs b/Assets/Scripts/MiniGame/Gear/Shaft.cs
index e67a2d4a2..06b5bf420 100644
--- a/Assets/Scripts/MiniGame/Gear/Shaft.cs
+++ b/Assets/Scripts/MiniGame/Gear/Shaft.cs
@@ -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;
diff --git a/Assets/Scripts/MiniGame/Gear/ShaftGraph.cs b/Assets/Scripts/MiniGame/Gear/ShaftGraph.cs
index aab90b35b..3db039a3b 100644
--- a/Assets/Scripts/MiniGame/Gear/ShaftGraph.cs
+++ b/Assets/Scripts/MiniGame/Gear/ShaftGraph.cs
@@ -43,6 +43,24 @@ namespace AibisDream
UpdateSpeed();
}
+ ///
+ /// 初始化速度
+ ///
+ /// 初始速度
+ 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;
}
-
- ///
- /// 通过引擎系统加速
- ///
- /// 当前速度
- private void Accelerate(float curSpeed)
- {
- foreach (var shaft in _vertexArray)
- {
- if (shaft.HasChildGear()) shaft.UpdateSpeedScale(1 + curSpeed);
- }
- }
}
}
\ No newline at end of file
diff --git a/Assets/Scripts/UI/Cursor/CursorManager.cs b/Assets/Scripts/UI/Cursor/CursorManager.cs
index 5fa622d49..ab095737d 100644
--- a/Assets/Scripts/UI/Cursor/CursorManager.cs
+++ b/Assets/Scripts/UI/Cursor/CursorManager.cs
@@ -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();
- _cursorCanvas = GetComponent();
}
private void RegisterEvent()
{
// 此处监听所有可能对鼠标状态产生影响的事件
+ RegisterDialogEvent();
+ RegisterTriggerEvent();
+ RegisterMenu();
+ }
+
+ private void RegisterDialogEvent()
+ {
// 对话相关
_unRegisters.Add(EnumEventSystem.Global.Register(DialogEventEnum.LineStart,
OnLineStart));
@@ -74,7 +80,10 @@ namespace AibisDream
_unRegisters.Add(
EnumEventSystem.Global.Register(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.PointerUp, OnPointerUp));
}
+ private void RegisterMenu()
+ {
+ _unRegisters.Add(EnumEventSystem.Global.Register(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 指针切换
///
diff --git a/Assets/Scripts/UI/DialogUI/DialogCanvasManager.cs b/Assets/Scripts/UI/DialogUI/DialogCanvasManager.cs
index cb2e13812..c9f7ad2ac 100644
--- a/Assets/Scripts/UI/DialogUI/DialogCanvasManager.cs
+++ b/Assets/Scripts/UI/DialogUI/DialogCanvasManager.cs
@@ -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