Merge branch 'develop' into feature/年底补锅台词冲刺

This commit is contained in:
2024-12-29 23:19:34 +08:00
42 changed files with 6269 additions and 2959 deletions
+4 -2
View File
@@ -9,11 +9,13 @@ namespace AibisDream.SystemEditor
{
private int _selectedIndex;
private string _inputText = "";
private string[] _options;
public override void OnInspectorGUI()
{
// 获取目标对象
SystemHasData example = (SystemHasData)target;
_options = example.GetDataKeyOptions();
// 绘制默认的 Inspector
DrawDefaultInspector();
@@ -21,14 +23,14 @@ namespace AibisDream.SystemEditor
GUILayout.Label("数据加载与保存");
// 绘制下拉选择和输入框
EditorGUILayout.BeginHorizontal();
int newIndex = EditorGUILayout.Popup(_selectedIndex, example.GetDataKeyOptions());
int newIndex = EditorGUILayout.Popup(_selectedIndex, _options);
_inputText = EditorGUILayout.TextField(_inputText);
EditorGUILayout.EndHorizontal();
if (newIndex != _selectedIndex)
{
_selectedIndex = newIndex;
_inputText = example.GetDataKeyOptions()[newIndex];
_inputText = _options[newIndex];
}
// 保存按钮
File diff suppressed because one or more lines are too long
@@ -35,7 +35,7 @@ ScriptedImporter:
spriteMeshType: 0
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 200
spritePixelsToUnits: 215
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 0
generateCubemap: 6
@@ -248,10 +248,10 @@ ScriptedImporter:
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 2212
y: 5498
width: 697
height: 356
x: 2220
y: 5499
width: 682
height: 348
spriteID: 5dd8c8637cee4004791d409a9dd08c43
spriteBone: []
spriteOutline: []
@@ -291,8 +291,8 @@ ScriptedImporter:
rect:
serializedVersion: 2
x: 3941
y: 6530
width: 44
y: 6529
width: 43
height: 21
spriteID: 9f9deb0f2cb514d4d828fd62fa70dde3
spriteBone: []
@@ -417,7 +417,7 @@ ScriptedImporter:
rect:
serializedVersion: 2
x: 3789
y: 5498
y: 5499
width: 154
height: 154
spriteID: c562151c266172245900603e7959a8da
@@ -523,8 +523,8 @@ ScriptedImporter:
serializedVersion: 2
x: 4
y: 7105
width: 1412
height: 790
width: 1416
height: 794
spriteID: 905674a2af97be442a16bdb7e34e5230
spriteBone: []
spriteOutline: []
@@ -995,7 +995,7 @@ ScriptedImporter:
- name: DefaultTexturePlatform
overridden: 0
ignorePlatformSupport: 0
maxTextureSize: 4096
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
@@ -1055,7 +1055,7 @@ ScriptedImporter:
mosaicLayers: 1
characterMode: 1
documentPivot: {x: 0, y: 0}
documentAlignment: 7
documentAlignment: 0
importHiddenLayers: 0
layerMappingOption: 2
generatePhysicsShape: 0
@@ -1067,7 +1067,7 @@ ScriptedImporter:
spriteCategoryList:
categories: []
spritePackingTag:
resliceFromLayer: 0
resliceFromLayer: 1
mosaicPSDLayers: []
rigPSDLayers:
- name: "\u6CE2\u5F62\u5C4F\u5E55"
@@ -1533,9 +1533,9 @@ ScriptedImporter:
sharedRigPSDLayers: []
pSDLayerImportSetting: []
importFileNodeState: 1
platformSettingsDirtyTick: 638684918888245490
platformSettingsDirtyTick: 638709385618986079
spriteSizeExpandChanged: 0
generateGOHierarchy: 0
generateGOHierarchy: 1
textureAssetName:
prefabAssetName:
spriteLibAssetName:
File diff suppressed because it is too large Load Diff
@@ -1260,7 +1260,7 @@ SpriteRenderer:
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 8
m_SortingOrder: 17
m_Sprite: {fileID: 21300000, guid: 6f1e19b22a956634b86a43a0ee4ae6f6, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -72,8 +72,8 @@ SpriteRenderer:
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 5
m_Sprite: {fileID: 9131045294461249809, guid: 6de0a74e5b5268b4998dc7a5c687fb95, type: 3}
m_SortingOrder: 6
m_Sprite: {fileID: 1270100964141770735, guid: 149a798e8f987264f82beb4f4052eb5e, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
@@ -28,7 +28,7 @@ Transform:
m_GameObject: {fileID: 5285827322175967477}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.733, y: -0.66, z: 0}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -74,7 +74,7 @@ SpriteRenderer:
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 5
m_SortingOrder: 6
m_Sprite: {fileID: 21300000, guid: eccbf2467d281894bafba3ef467f0875, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -135,4 +135,5 @@ MonoBehaviour:
m_EditorClassIdentifier:
radius: 0
gearSprite: {fileID: 0}
isBroken: 0
targetShaft: {fileID: 0}
@@ -1,125 +1,5 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4413377968706854998
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6188141449000061737}
- component: {fileID: 5891805930162401337}
- component: {fileID: 7662770017579338042}
m_Layer: 0
m_Name: Static Gear
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &6188141449000061737
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4413377968706854998}
serializedVersion: 2
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: 8196328002646668744}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &5891805930162401337
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4413377968706854998}
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: 5
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 1
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!58 &7662770017579338042
CircleCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4413377968706854998}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 0
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0, y: 0}
serializedVersion: 2
m_Radius: 0.5
--- !u!1 &6363828760380717502
GameObject:
m_ObjectHideFlags: 0
@@ -150,8 +30,7 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6188141449000061737}
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &3043662884828134004
@@ -194,7 +73,7 @@ SpriteRenderer:
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 4
m_SortingOrder: 5
m_Sprite: {fileID: -5530534795728576300, guid: 6de0a74e5b5268b4998dc7a5c687fb95, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@@ -220,10 +99,13 @@ MonoBehaviour:
m_EditorClassIdentifier:
id: 0
shaftType: 0
hasGear: 0
isInitGearBroken: 0
isInitGearDisc: 0
initRadius: 0
initSprite: {fileID: 0}
hasGear: 0
childGear: {fileID: 0}
initialSpeed: 0
targetSpeed: 0
speed: 0
speedMultiplier: 1
+1 -1
View File
@@ -13,6 +13,6 @@ MonoBehaviour:
m_Name: StoneDay2
m_EditorClassIdentifier:
nextScene: {fileID: 0}
yarnProject: {fileID: 7545569452688597077, guid: 23b032aeb7a33db4a94b50b89fc530a7, type: 3}
yarnProject: {fileID: 7545569452688597077, guid: c7bda76049631864984b10bc8201c815, type: 3}
firstSceneName: ExpressFixScene
isEndOfDay: 0
@@ -83,19 +83,19 @@ title: 泵机运行
title: 引擎过速
description: 引擎过速触发
---
当前档位为{$curAirLevel}
过速
===
title: 引擎掉速
description: 引擎掉速触发
---
当前档位为{$curAirLevel}
掉速
===
title: 调整进气档位
description: 调整进气档位时触发
---
当前档位为{$curAirLevel}
调整进气档位
===
// title: EngineSuccess
File diff suppressed because it is too large Load Diff
@@ -5,6 +5,9 @@ position: -359,-46
<<jump 检查_肺>>
===
title: HeartPlugIn
descrption: 插入心时触发
position: -79,-46
@@ -12,6 +15,9 @@ position: -79,-46
<<jump 检查_心>>
===
title: LiverPlugIn
descrption: 插入肝时触发
position: 204,-46
@@ -19,9 +25,115 @@ position: 204,-46
<<jump 检查_肝>>
===
title: StomachPlugIn
descrption: 插入胃时触发
position: 470,-51
---
<<jump 检查_胃>>
===
title: 破损齿轮插入
descrption: 每个破损齿轮每次插入都会触发,具体怎么处理先交给yarn
---
<<if $gameStage == 2>>
<<jump 发现坏齿轮>>
<<endif>>
===
title: 齿轮系统状态变化
---
<<if $speedReached>>
<<wait 1>>
me: 好啦!这下修好了。
shitou: 我感觉…动力…都…回来啦!!
<<endif>>
<<if ($discIdx == 1 || $discIdx == 2 || $discIdx == 3) && $discExplained == false>>
//$discIdx是唱片齿轮插入的轴的序号,1-3意味着插入的是目标的三个轴,0是其他轴
me: 这就是我觉得长得很奇怪的那些齿轮…这是什么?
me: 像很久以前的那种什么东西…放在一个盘子上,转起来会发出音乐的…
me: …唱片?
shitou: 啊~哈哈!医生,你竟然认得唱片!想必你也是音乐~爱好者!
me: 我记得好久以前…我曾经是摇滚乐爱好者……在它被禁止以前。
<<set $discExplained = true>>
shitou: 嗨呀~不是以前说什么“摇滚乐已死”嘛!被禁止,反而才说明它活过来啦。
shitou: 你可别告诉别人喔~这可是我的得意改装!我从小!就喜欢音乐!可惜我~五音不全。
shitou: 工作后一攒够钱!我就买了一直心念念的~Walkman~JukeB0X,音乐~唱片机!
shitou: 我找人把它改装进了动力模块里边~这样我就可以一边跑货~一边跟着我最喜欢的旋律唱了~
<<hide_dialog>>
<<wait 1>>
shitou: 不过今天它就一直没响起来过…不知道咋回事。
<<if $speedReached>>
me: 变速箱已经修好了,我想你可以试试。
<<else>>
me: 等修好这个变速箱就应该可以了。
<<endif>>
<<endif>>
<<if $speedReached>>
<<if ($discIdx == 1 || $discIdx == 2 || $discIdx == 3)>>
shitou: 音乐,来吧!
<<hide_dialog>>
<<move_needle>>
<<wait 2>>
shitou: 多么美好的时光啊……
<<hide_dialog>>
<<wait 1>>
me: 一提到音乐,他就恢复精神了啊。
<<hide_dialog>>
<<wait 1>>
me: 好了,完成了!我们结束吧。
<<hide_dialog>>
<<wait 0.5>>
shitou: 医生,让我们再听一会吧!
<<hide_dialog>>
<<wait 1>>
me: 也好。
shitou: 太好啦。医生!和朋友~分享音乐~是最快乐的事情啦!
shitou: 这张唱片是我好多年前在地摊淘的呢。现在社会发展~太快啦!都找不到这种地摊啦。已经绝版咯!
me: 这种唱片机我也很久没见过了。你不说,我还真认不出来。
shitou: 我们这种人呀,没有什么爱好!听点音乐~唱唱歌~就是最开心的事情啦!
->再听一会
<<hide_dialog>>
<<wait 1>>
me: 我还蛮羡慕你的。
shitou: 对吧?大家都这么说~
shitou: 嗨呀~其实现在大家都愁眉苦脸的,其实没啥好担心的嘛!
shitou: 就算担心,我们又能做啥嘞?大家都说社会咋样咋样…但是它不是一直都不好嘛!
shitou: 生活怎么可能没有困难呢?苦一苦,熬一熬,啥困难都会过去的嘛!
me: …但有的事情……好像只是在越变越差。
shitou: 医生,谁知道明天会怎样呢?谁又知道是明天还是后天,还是什么时候,坏事才发生呢?
shitou: 要是有什么东西注定要发生,那就让它发生吧!
shitou: 在这之前~只要能开心一天,那为什么不开心一天呢?
shitou: 只要每天睁开眼睛,我还能看见太阳,还能听见音乐,就没什么可担心的~
<<hide_dialog>>
<<wait 1>>
me: 好了,大音乐家…不是,大哲学家。我们该结束了。
me: 谢谢你的分享。
shitou: 嘿嘿,我谢谢你才是嘞~医生!
->退出
me: 好了,听得差不多了?我们该结束了。
shitou: 好嘞,医生!
<<hide_dialog>>
<<set $gameStage = 5>>
<<jump 第二次维修结束>>
<<endif>>
<<endif>>
===
@@ -36,6 +36,13 @@ position: 241,-2149
//是否完成了变速箱的调配
<<declare $gearsDone=false>>
//是否解释过唱片是啥
<<declare $discExplained = false>>
//【功能相关】
//clueboard相关
<<declare $StartNode="">>
@@ -101,20 +108,33 @@ position: 250,-1874
<<indoor 1>>
<<fade_out 1>>
shitou: 呼…在远方,在山岗~♫……呼……总有纯净的土壤~♫
me: 我们的音乐家回来了。
// FIXUP 立绘指令修改
<<character_init_new "石头">>
<<character_fade_in_new character>>
<<character_fade_in_new>>
// 立绘指令修改
隔了一天,石头出现在了诊所门口。
他看起来脸色并不太好,说两句话就要喘一口气。
但当我问他哪里痛时,他却说并没有不舒服
他告诉我从诊所出去之后,一整天跑得都很快,像有使不完的力气。
但晚上开始,他发现他的动力开始时不时地中断,怎么也跑不起来。
他将就着跑完了当晚,但情况越来越糟,几乎跑两步就会断一下。最后他决定还是来诊所看一看。
shitou: 呼……让我喘口气先……哎!哈哈!
me: 你看起来累得不行,怎么还这么开心?
shitou: 我刚跑完货呢…跑货是最开心的事情啦
me: 这么累也开心吗?
shitou: 医生…在路上穿梭的感觉可…呼…可好了。要是天天坐在这里,反而不开心呢……
shitou: 而且嘛~我们吃辛苦饭的,一分耕耘一分收获!呼……
shitou: 呼…所以越是累,我当然就越是开心啦~累是最踏实的感觉啦。
me: 好吧…那至少,你先歇口气吧。
shitou: 不歇啦。呼…医生,你帮我修一个小问题,然后我就要回去跑货啦……
me: 小问题?怎么了?
shitou: 我今天跑的时候出现好几次了。
shitou: 我跑着跑着,<b><size=100%><color=\#D9BC26>当我要换挡到最高速的时候,就忽然吃不上力了</color></b>。
me: 吃不上力…是档换不上了么?
shitou: 不懂嘞…反正一要跑到最高速度,就忽然…没法跑快了。
me: 听起来是动力系统又出了些问题…
me: 总之,我帮你再检查一下吧,看看是引擎还是变速箱出了啥问题。
shitou: 好嘞,再次麻烦你啦,医生。
<<hide_dialog>>
<<wait 1>>
于是我们便开始了诊疗,找出让他动力中断的原因。
<<hide_dialog>>
@@ -130,24 +150,31 @@ colorID: 3
position: 240,-1440
---
<<fade_in 0.5>>
<<wait 1>>
<<hide_dialog>>
<<wait 1>>
me: 我记得他的动力系统是出过事故的…希望这次不是那么严重的问题。
me: 你这套动力系统本来就已经不堪重负,出现问题……老实说,也不是很奇怪。
shitou: 不好意思啦,医生。我以后会注意的。
//<<load_scene 佩佩视觉模块>>
//<<NodeInit CanvasClueBoard 1>>
//<<SetExternalError ViewManager MemoryView true>>
<<wait 0.5>>
<<hide_dialog>>
<<switch_fix_system_to "BodyModule" "stone1.json">>
<<fade_out 1>>
<<MessageBoxSetNull>>
<<MessageBoxSetText 等待信号输入……>>
me: 找到无法换到最高速档的原因…<br>顺便检查一下循环系统吧,看看透析的效果。
拖动屏幕右侧检修终端上的插头,至每个模块的绿色插口上,运行检查
<<set $gameStage=2>>
<<switch_fix_system_to "BodyModule" "stone1.json">>
<<jump 主维修界面 >>
<<jump 主维修界面 >>
===
@@ -163,17 +190,23 @@ position: 206,-1006
//检查阶段
<<if $gameStage == 2>>
<<jump 检查(临时)>>
<<if $gearProblemKnown==true>>
me: 动力中断的原因应该已经清楚了。
->结束检查
<<set $gameStage = $gameStage + 1>>
<<jump 主维修界面>>
<<endif>>
<<endif>>
//检查后对话阶段
<<if $gameStage == 3>>
<<hide_dialog>>
<<jump 分析准备>>
<<endif>>
//变速箱阶段
<<if $gameStage == 4>>
<<jump 检查(临时)>>
<<jump 变速箱维修_复原(临时)>>
<<endif>>
//变速箱后对话阶段
@@ -229,17 +262,42 @@ position: -237,-1007
title: 检查_肺
tags:
colorID: 8
position: -595,-1288
position: -629,-965
---
气体循环系统,为动力系统供气。
->整体状态
功能非常健壮,看起来经常运动。
->检查滤板
进气管道内很浑浊。他的动力系统过于强劲,这套基础的呼吸系统承受了过大的压力……
->返回
<<jump 检查(临时)>>
<<jump 检查_肺>>
<<MessageBoxSetText 正在建立连接…>>
<<wait 0.5>>
<<MessageBoxSetNull>>
<<MessageBoxSetText 换气模块>>
<<wait 0.1>>
<<MessageBoxSetText 进行内外部气体与热量交换,影响呼吸和散热相关的工作。>>
->检查
<<hide_dialog>>
<<MessageBoxSetNull>>
<<MessageBoxSetChecking>>
<<if $lungProblemKnown == false>>
<<wait 1>>
<<endif>>
<<wait 0.5>>
<<MessageBoxSetNormal>>
<<MessageBoxSetText 检查完成!没有发现错误>>
<<wait 0.1>>
<<MessageBoxSetText 检测到0个错误,0个警告,6个异常。38295个节点已扫描。>>
<<if $lungProblemKnown == false>>
->分析
<<hide_dialog>>
<<wait 0.5>>
<<MessageBoxSetText " ">>
<<MessageBoxSetText 报告传输完毕。>>
<<wait 1.5>>
me: 换气系统很疲惫…看起来经过了很高强度的工作。
me: <b><size=100%><color=\#0099FF>催化滤板的积碳还是老样子…怪不得他要喘这么久呢。</color></b>
shitou: 嗨呀…不打紧。
<<set $lungProblemKnown=true>>
<<else>>
me: 催化滤板的积碳还是老样子…怪不得他要喘这么久呢。
<<endif>>
->结束
<<jump 主维修界面>>
===
@@ -248,19 +306,51 @@ position: -595,-1288
title: 检查_心
tags:
colorID: 8
position: -609,-1099
position: -643,-776
---
机体的能源模块。石头的能源系统是被改造过的…这是为了用于为肢体提供高速动力的型号,非常强劲。
->检查进气压力
目前压力已被设置为了中等,石头现在能跑出更高的速度上限了。
->缺陷检查
检查到动力系统内部有缺齿的机械声音,可能与变速箱故障有关。
->深入检查 // 这里没动。需要修改的时候找老丁交流
<<jump 变速箱维修(临时)>>
->返回
<<jump 检查(临时)>>
<<jump 检查_心>>
<<MessageBoxSetText 正在建立连接…>>
<<wait 0.5>>
<<MessageBoxSetText 动力模块>>
<<wait 0.1>>
<<MessageBoxSetText 将机体的燃料转化为电能/机械能,驱动机体和内部模块运转。>>
->检查
<<hide_dialog>>
<<MessageBoxSetNull>>
<<MessageBoxSetChecking>>
<<if $engineProblemKnown == false>>
<<wait 1>>
<<endif>>
<<wait 0.5>>
<<MessageBoxSetNormal>>
<<MessageBoxSetText 检查完成!没有发现错误。>>
<<wait 0.1>>
<<MessageBoxSetText 检测到0个错误,1个警告,172个异常。122596个节点已扫描。>>
<<if $engineProblemKnown == false>>
->分析
<<wait 0.5>>
<<MessageBoxSetText "于 变速箱 检查到传动故障!">>
<<wait 1>>
<<MessageBoxSetText " ">>
<<MessageBoxSetText 报告传输完毕。>>
<<wait 1>>
<<set $engineProblemKnown=true>>
me: 果然,变速箱出现故障了。好像能听见一些杂音……
me: 这听起来和你描述的问题可能有关系。
->深入检查
<<hide_dialog>>
<<jump 变速箱维修(临时)>>
<<else>>
<<wait 0.5>>
<<MessageBoxSetText "于 变速箱 检查到传动故障!">>
me: 听起来比昨天更强劲了…但是也能听见某种杂音。
->深入检查
<<hide_dialog>>
<<endif>>
->深入检查<<if $engineProblemKnown==true>>
<<hide_dialog>>
->结束
<<hide_dialog>>
<<jump 主维修界面>>
===
@@ -269,17 +359,40 @@ position: -609,-1099
title: 检查_胃
tags:
colorID: 8
position: -594,-907
position: -628,-584
---
机体的物质和燃料摄入、储藏模块。
->检查最近摄入燃料
机体体内的燃料纯度很低,能提供的动力较慢。
->检查最近摄入物质
机体最近摄入的食物成分非常简单而健康,全是基础款罐头。
->返回
<<jump 检查(临时)>>
<<jump 检查_胃>>
<<MessageBoxSetText 正在建立连接…>>
<<wait 0.5>>
<<MessageBoxSetText 物质模块>>
<<wait 0.1>>
<<MessageBoxSetText 负责机体的物质和燃料摄入、处理和储存。>>
->检查
<<hide_dialog>>
<<MessageBoxSetNull>>
<<MessageBoxSetChecking>>
<<if $fuelProblemKnown == false>>
<<wait 1>>
<<endif>>
<<wait 0.5>>
<<MessageBoxSetNormal>>
<<MessageBoxSetText 检查完成!没有发现错误。 >>
<<wait 0.1>>
<<MessageBoxSetText 检测到0个错误,0个警告,9个异常。83423个节点已扫描。>>
<<if $fuelProblemKnown == false>>
->分析
<<hide_dialog>>
<<wait 0.5>>
<<MessageBoxSetText " ">>
<<MessageBoxSetText 报告传输完毕。>>
<<wait 1.5>>
me: ……你早上吃了什么?
shitou: 早上…早上没吃呢。我急着跑货,就搞忘啦……
<<set $fuelProblemKnown = true>>
<<else>>
me: 今天还没有摄入任何物质,里面很空。
<<endif>>
->结束
<<jump 主维修界面>>
===
@@ -288,17 +401,42 @@ position: -594,-907
title: 检查_肝
tags:
colorID: 8
position: -578,-732
position: -637,-431
---
冷却液循环的处理中枢,让模块保持良好的运行状态。
->整体状态
冷却液已经恢复了澄清,现在状态不错。
->检查冷却液
冷却液很新,推测不久前彻底换过,通常大修才会换到这种程度。
->返回
<<jump 检查(临时)>>
<<jump 检查_肝>>
<<MessageBoxSetNull>>
<<MessageBoxSetText 正在建立连接…>>
<<wait 0.2>>
<<MessageBoxSetText 循环模块>>
<<wait 0.1>>
<<MessageBoxSetText 负责机体的冷却液净化处理,保证各模块的运行状态。>>
->检查
<<hide_dialog>>
<<MessageBoxSetNull>>
<<MessageBoxSetChecking>>
<<if $bloodProblemKnown == false>>
<<wait 1>>
<<endif>>
<<wait 0.5>>
<<MessageBoxSetWarning>>
<<MessageBoxSetText 检查完成!发现1个警告。 >>
<<wait 0.1>>
<<MessageBoxSetText 检测到0个错误,0个警告,4个异常。4286个节点已扫描。>>
<<if $bloodProblemKnown == false>>
->分析
<<hide_dialog>>
<<wait 0.5>>
<<MessageBoxSetText " ">>
<<MessageBoxSetText 报告传输完毕。>>
<<wait 1.5>>
me: 冷却液的情况看起来好多了,已经恢复了流动性。
me: 这至少可以支撑一会……至少到销售大赛结束。
shitou: 医生,确实你给我做完这个什么…偷袭,感觉浑身…有劲儿多了嘞。
<<set $bloodProblemKnown = true>>
<<else>>
me: 冷却液已经恢复了流动性,透析达到了效果。
<<endif>>
->结束
<<jump 主维修界面>>
===
@@ -309,12 +447,15 @@ tags:
colorID: 8
position: -1194,-398
---
<<if $gearBoxOpened==false>>
<<jump 变速箱拆开(临时)>>
<<elseif $gameStage<4>>
<<jump 变速箱维修_复原(临时)>>
<<elseif $gameStage<6>>
<<jump 变速箱维修_调配(临时)>>
<<if $gameStage == 2>>
<<if $gearBoxOpened==false>>
<<jump 变速箱拆开(临时)>>
<<endif>>
<<elseif $gameStage == 3>>
me: 嗯…至少换不上档的原因找到了。让我想想怎么处理。
<<jump 主维修界面>>
<<elseif $gameStage == 4>>
<<endif>>
===
@@ -326,14 +467,39 @@ tags:
colorID: 8
position: -876,-409
---
<<switch_fix_system_to "Gear" "stone_day2_1.json">>
->拆开变速箱螺丝
<<hide_dialog>>
<<open_gear_cover>>
<<shake_camera 0.4 0.3 20>>
<<fade_in 0.1>>
嘭的一声,有什么东西崩了出来。
<<set $gearBoxOpened=true>>
拆开的一瞬间,里面的齿轮嘭的一声崩了出来。
我们都被吓了一跳。我把散落的齿轮收集起来,好在看起来一个都没少。
其中还有一些奇怪形状的齿轮…看起来像唱片一样
<<fade_out 0.5>>
shitou: 哎呀!
me: 有两个齿轮…掉出来了
<<open_gear_panel>>
me: 就是这些了。这些齿轮…看起来怪怪的。
shitou: 医生,我怎么…感觉完全使不上劲儿了?
me: 别急,我这就给你把齿轮装回去。
让齿轮系统恢复运作
<<jump 变速箱维修(临时)>>
->返回
<<jump 主维修界面>>
===
title: 发现坏齿轮
tags:
colorID: 8
position: -876,-409
---
<<wait 2>>
me: 看来这就是你没法换挡的原因。这个齿轮已经磨损太严重,完全滑牙了。
shitou: 嗨呀,看来我太使劲儿,把它搞坏啦。哈哈!
me: 以这套锻钢齿轮的强度,和你现在的工作压力,磨损也是迟早的事……
<<set $gameStage = 3>>
<<jump 变速箱维修(临时)>>
===
@@ -344,21 +510,37 @@ tags:
colorID: 8
position: -867,-152
---
<<if $gearProblemKnown == false>>
->复原齿轮
当我重新把齿轮安装回去的时候,发现这些齿轮已经严重磨损了。
装上后,我看到齿轮开始滑牙。这就是石头感到动力中断的原因。
<<set $gearProblemKnown = true>>
<<jump 主维修界面>>
->返回
<<jump 主维修界面>>
<<else>>
磨损的齿轮正在不断滑牙,这就是石头感到动力中断的原因。
<<jump 主维修界面>>
<<endif>>
// <<if $gearProblemKnown == false>>
// ->复原齿轮
// 当我重新把齿轮安装回去的时候,发现这些齿轮已经严重磨损了。
// 装上后,我看到齿轮开始滑牙。这就是石头感到动力中断的原因。
// <<set $gearProblemKnown = true>>
// <<jump 主维修界面>>
// ->返回
// <<jump 主维修界面>>
// <<else>>
// 磨损的齿轮正在不断滑牙,这就是石头感到动力中断的原因。
// <<jump 主维修界面>>
// <<endif>>
<<trans_camera_pos 1 0 1>>
<<fade_in 1>>
<<switch_fix_system_to "BodyModule" "stone1.json">>
<<fade_out 1>>
<<switch_fix_system_to "Gear">>
<<open_gear_cover>>
<<open_gear_panel>>
===
title: 复原完成
description: 把错误齿轮放回去就会触发
---
<<set $gameStage = 5>>
-> 返回诊所
<<switch_fix_system_to "Clinic">>
<<jump 主维修界面>>
===
title: 分析准备
@@ -366,18 +548,11 @@ tags:
colorID: 8
position: 626,-314
---
//现在关于切换场景的数据保存还没有完成,建议先不切场景
<<fade_in 1>>
<<load_scene ClinicScene>>
<<move_out_fix>>
<<fade_out 1>>
//<<OpenClueBoard ClueBoard>>
me: 正是变速箱这套齿轮的缺损导致了动力的中断。这些锻钢齿轮还是不够耐磨……
me: 不过能磨损这么严重,要施加很大的机械压力…这应该会非常痛才对。
<<hide_dialog>>
<<wait 1>>
me: 这些齿轮都需要更换,而且最好换成更耐磨的镍铬齿轮。
me: 不过话说回来,这些唱片一样的齿轮…到底是什么东西?
<<fade_in 1>>
<<switch_fix_system_to "Clinic">>
<<fade_out 1>>
<<jump 检查后对话>>
===
@@ -386,18 +561,31 @@ tags:
colorID: 8
position: 627,-80
---
我向石头展示了磨损严重的齿轮,并询问他是否感到疼痛,以及从何时开始。
石头笑着告诉我没有什么疼痛。他的笑容如此真诚,让我很难怀疑
我提出的更换齿轮的方案依然被石头否定了。
他认为齿轮磨损的原因应该是那次事故造成的,希望继续使用锻钢齿轮
“我们天天路上跑的,怎么可能不出事呢…下次小心一些就好啦!”他说
shitou: 怎么样,医生?这些齿轮能修好不?
me: 这种损伤是不能修复的,只能更换,而且最好更换成镍铬齿轮
shitou: 医生,这个镍铬齿轮,贵吗?
me: 会有点。不过,它们更耐磨,能承受更大的应力
shitou: 那还是别啦。医生,就给我换成普通的齿轮吧
me: ……
<<hide_dialog>>
<<wait 1>>
接着我询问了关于这些“唱片齿轮”的事情
石头的眼神变得得意起来。他告诉我这是他最中意的改装,只要跑起来,他就能听到音乐
他让我快把这些唱片装回去,他好和我分享他最爱的音乐
<<set $gameStage = 4>>
me: 能磨损这么严重,要施加很大的机械压力…你应该很痛吧
shitou: 痛?嗨…没有哩。医生
shitou: 要是痛的话,我早就啊呜啊呜喊啦。你看我现在不是~活蹦乱跳的嘛
shitou: 我只是有点累~休息会就好啦。
<<hide_dialog>>
<<wait 1>>
me: 好吧,那我给你把磨损的齿轮换成普通的。
<<wait 0.5>>
me: 还有一个问题…你有的齿轮看起来…有点奇特。
shitou: 噢?你找到了…*那些*…齿轮?
me: 什么是…“那些”齿轮?
shitou: 哈哈,医生~我们直接开始看吧!
<<hide_dialog>>
<<trans_camera_pos 1 0 1>>
<<fade_in 1>>
<<set $gameStage = 6>>
<<jump 主维修界面>>
===
@@ -450,11 +638,9 @@ title: 变速箱后对话
tags:
position: 311,143
---
<<fade_out 1>>
me: (这应该够他扛一段时间了,只要他不再出事故…)
变速箱修好了,接下来应该在引擎中测试一下确认故障已经被修好。
<<set $gameStage = 6>>
<<fade_in 1>>
<<jump 主维修界面>>
===
@@ -465,27 +651,50 @@ title: 加压(临时)
tags:
position: 311,143
---
->踩油门
随着速度升高,齿轮的声音也变得尖锐起来。
但是没有再发生动力中断的问题。
石头看起来非常开心。他再次唱起了歌,并夸赞我的医术。
“把压力再提高一档吧!”他忽然说。
<<hide_dialog>>
<<wait 0.5>>
“什么?…压力…我已经提高过一次了。”我说。
<<hide_dialog>>
<<wait 1>>
“是的!那就让他再高一档吧!”石头唱起了歌。在歌里,他无忧无虑,在城市街头快乐地穿梭。
“我感觉非常好!多亏了你,我觉得我能再快一些!”
->提高压力
你把压力调高了一档。这次速度升得更高了。引擎的声音如此之大,他的身体显然承受着巨大的压力。
<<hide_dialog>>
<<wait 1>>
在引擎的轰鸣声中,你听到了石头的歌声。
他的声音如此快活,仿佛他不是在送货,而是在像鸟儿一样自由翱翔。
->结束
<<set $gameStage = 7>>
<<jump 主维修界面>>
// ->踩油门
// 随着速度升高,齿轮的声音也变得尖锐起来。
// 但是没有再发生动力中断的问题。
// 石头看起来非常开心。他再次唱起了歌,并夸赞我的医术。
// “把压力再提高一档吧!”他忽然说。
// <<hide_dialog>>
// <<wait 0.5>>
// “什么?…压力…我已经提高过一次了。”我说。
// <<hide_dialog>>
// <<wait 1>>
// “是的!那就让他再高一档吧!”石头唱起了歌。在歌里,他无忧无虑,在城市街头快乐地穿梭。
// “我感觉非常好!多亏了你,我觉得我能再快一些!”
// ->提高压力
// 你把压力调高了一档。这次速度升得更高了。引擎的声音如此之大,他的身体显然承受着巨大的压力。
// <<hide_dialog>>
// <<wait 1>>
// 在引擎的轰鸣声中,你听到了石头的歌声。
// 他的声音如此快活,仿佛他不是在送货,而是在像鸟儿一样自由翱翔。
// ->结束
// <<set $gameStage = 7>>
// <<jump 主维修界面>>
<<switch_fix_system_to "BodyModule" "stone1.json">>
<<fade_out 1>>
<<switch_fix_system_to "Gear" "stone_day2_3.json">>
<<open_gear_cover>>
me: 需要一个和它尺寸一致的齿轮…
<<wait 0.5>>
<<open_gear_panel>>
===
title: 第二次维修结束
---
<<close_gear_panel>>
<<close_gear_cover>>
<<fade_in 1>>
<<set $gameStage = 7>>
<<switch_fix_system_to "Clinic">>
<<jump 结束对话>>
===
@@ -496,9 +705,40 @@ tags:
position: 311,143
---
<<fade_out 1>>
石头脸上流下了汗珠,不知道是因为激动的歌声还是因为高速的引擎
他对你的诊疗非常满意,马上离开投入了工作之中
希望他不会再回来了。你想。
me: 好了,现在应该完全修好了。试试看吧
me: 走!走两步。别把诊室里的东西碰倒了
shitou: 好嘞~
<<character_fade_out_new character>>
<<shake_camera 0.4 0.3 20>>
me: 慢点!
<<character_fade_in_new character>>
shitou: 嘿嘿~不好意思。医生!
shitou: 太好啦!现在我有浑身都有劲儿啦!
shitou: 医生~那…我…可以走啦?
me: 去吧,注意安全。
shitou: 好嘞,谢谢医生!
<<hide_dialog>>
<<character_fade_out_new character>>
<<wait 1>>
<<character_fade_in_new character>>
shitou: 医生……
shitou: 太阳落下去,还会再升起来的。对吧?
shitou: 要是我们都失去希望,那就肯定不会再看到它升起来了。
shitou: 所以,开心点吧!
<<hide_dialog>>
<<character_fade_out_new character>>
me: 太阳还会再升起来的…吗?
<<fade_in 1>>
<<NextYarn>>
===
@@ -134,7 +134,7 @@ position: 240,-1440
<<wait 1>>
me: 这才几天,就来第三次了…
me: 还好看起来伤的不是特别严重。希望这次没伤到你的动力模块……
me: 还好看起来伤的不是特别严重。希望这次没伤到你的动力模块
//<<load_scene 佩佩视觉模块>>
//<<NodeInit CanvasClueBoard 1>>
File diff suppressed because it is too large Load Diff
@@ -11,8 +11,6 @@ namespace AibisDream
{
public class DialogController : Singleton<DialogController>
{
private const string BookManager = "BookManager";
private DialogueRunner dialogueRunner;
private VariableStorageBehaviour _variableStorage;
@@ -61,11 +59,6 @@ namespace AibisDream
dialogueRunner = GetComponentInChildren<DialogueRunner>();
_variableStorage = GetComponentInChildren<InMemoryVariableStorage>();
// 开关书交互
BookManager bookManager = GameObject.Find(BookManager).gameObject.GetComponent<BookManager>();
bookManager.OnBookClosed += () => { IsBlock = false; };
bookManager.OnBookOpen += () => { IsBlock = true; };
dialogueRunner.onDialogueStart.AddListener(() =>
{
OnDialogueStart?.Invoke();
@@ -44,6 +44,10 @@ namespace AibisDream.FixSystem
TransitionDic.Add(FixState.UF, FixState.BodyModule, new UFToBodyModuleCommand());
TransitionDic.Add(FixState.Clinic, FixState.CoolingMachine, new ClinicToCoolingCommand());
TransitionDic.Add(FixState.CoolingMachine, FixState.Clinic, new CoolingToClinicCommand());
TransitionDic.Add(FixState.BodyModule, FixState.Gear, new BodyModuleToGearCommand());
TransitionDic.Add(FixState.Gear, FixState.BodyModule, new GearToBodyModuleCommand());
TransitionDic.Add(FixState.Clinic, FixState.Gear, new ClinicToGearCommand());
TransitionDic.Add(FixState.Gear, FixState.Clinic, new GearToClinicCommand());
}
/// <summary>
@@ -5,45 +5,82 @@ using UnityEngine;
namespace AibisDream.FixSystem
{
public class BodyModuleTransition
public struct GearToBodyModuleCommand : ITransitionCommand
{
public struct BodyModuleToGearCommand : ITransitionCommand
{
private static readonly Vector3 CameraPos = new(-2.5f, 2.13f, -10);
private const float OrthographicSize = 2.5f;
private const float Duration = 2f;
private const float Duration = 2f;
public IEnumerator Execute()
{
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
var gearSystem = FixSystemCenter.SystemDic.Get<GearSystem>();
public IEnumerator Execute()
{
var gearSystem = FixSystemCenter.SystemDic.Get<GearSystem>();
// 插头回到初始插孔
bodyModuleSystem.ResetPlug();
// 相机聚焦到目标位
yield return CameraKit.Instance.TransCamera(CameraPos, OrthographicSize, Duration).WaitForCompletion();
// 关盖子
yield return gearSystem.CloseGearPanel();
yield return gearSystem.CloseCover();
// 相机返回
yield return CameraKit.Instance.ReturnInitCamera(Duration).WaitForCompletion();
}
// 打开引擎盖子
yield return gearSystem.OpenCover();
}
public void SetArgs(string arg)
{
// 没有参数
}
}
public struct BodyModuleToGearCommand : ITransitionCommand
{
private static readonly Vector3 CameraPos = new(-1.09f, -0.07f, -10);
private const float OrthographicSize = 1.6f;
private const float Duration = 2f;
public void SetArgs(string arg)
private string _configKey;
public IEnumerator Execute()
{
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
var gearSystem = FixSystemCenter.SystemDic.Get<GearSystem>();
// 插头回到初始插孔
bodyModuleSystem.ResetPlug();
// 相机聚焦到目标位
yield return CameraKit.Instance.TransCamera(CameraPos, OrthographicSize, Duration).WaitForCompletion();
if (!string.IsNullOrEmpty(_configKey))
{
// 暂无参数
gearSystem.CurDataKey = _configKey;
gearSystem.Load();
}
}
public struct GearToBodyModuleCommand : ITransitionCommand
{
public IEnumerator Execute()
{
throw new System.NotImplementedException();
}
public void SetArgs(string arg)
{
throw new System.NotImplementedException();
}
public void SetArgs(string arg)
{
_configKey = arg.Trim();
}
}
public struct GearToClinicCommand : ITransitionCommand
{
private const float FadeDuration = 0.5f;
public IEnumerator Execute()
{
var clinicSystem = FixSystemCenter.SystemDic.Get<ClinicSystem>();
var gearSystem = FixSystemCenter.SystemDic.Get<GearSystem>();
// 盖上盖子
yield return gearSystem.CloseGearPanel();
yield return gearSystem.CloseCover();
// 黑屏
yield return MainUIController.Instance.FadeInSync(FadeDuration);
// 相机归位
CameraKit.Instance.ResetCamara();
// 打开诊所
clinicSystem.gameObject.SetActive(true);
// 黑屏淡出
yield return MainUIController.Instance.FadeOutSync(FadeDuration);
}
public void SetArgs(string arg)
{
// 没有参数
}
}
}
@@ -1,3 +1,3 @@
fileFormatVersion: 2
guid: ae4ece844a9a417687bd443b4cdf7820
timeCreated: 1735242780
guid: 31019d1b228d41eeb89a89fa9d9dd7e4
timeCreated: 1735296030
@@ -51,13 +51,13 @@ namespace AibisDream.FixSystem
var clinicSystem = FixSystemCenter.SystemDic.Get<ClinicSystem>();
var engineSystem = FixSystemCenter.SystemDic.Get<EngineSystem>();
// // 黑屏
// 黑屏
yield return MainUIController.Instance.FadeInSync(FadeDuration);
// 隐藏诊所
clinicSystem.gameObject.SetActive(false);
// 激活插线系统
bodyModuleSystem.gameObject.SetActive(true);
// // 黑屏淡出
// 黑屏淡出
yield return MainUIController.Instance.FadeOutSync(FadeDuration);
// 移动相机
yield return CameraKit.Instance.TransCameraAsync(CameraPos, OrthographicSize, Duration);
@@ -117,4 +117,41 @@ namespace AibisDream.FixSystem
// 没有需要设置的
}
}
public struct ClinicToGearCommand : ITransitionCommand
{
private const float FadeDuration = 0.5f;
// 引擎相机设置
private static readonly Vector3 CameraPos = new(-1.09f, -0.07f, -10);
private const float OrthographicSize = 1.6f;
private const float Duration = 2f;
private string _configName;
public IEnumerator Execute()
{
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
var clinicSystem = FixSystemCenter.SystemDic.Get<ClinicSystem>();
var gearSystem = FixSystemCenter.SystemDic.Get<GearSystem>();
// 隐藏诊所
clinicSystem.gameObject.SetActive(false);
// 激活插线系统
bodyModuleSystem.gameObject.SetActive(true);
// 移动相机
yield return CameraKit.Instance.TransCameraAsync(CameraPos, OrthographicSize, Duration);
// 开启引擎玩法
if (!string.IsNullOrEmpty(_configName))
{
gearSystem.CurDataKey = _configName;
gearSystem.Load();
}
}
public void SetArgs(string arg)
{
_configName = arg.Trim();
}
}
}
@@ -66,6 +66,11 @@ namespace AibisDream.Framework
{
return TransCameraAsync(_initPos, _initOrthographicSize, duration);
}
public IEnumerator ShakeCamera(float duration, float strength, int vibrate)
{
yield return _mainCamera.transform.DOShakePosition(duration, strength, vibrate, 90, false, false).WaitForCompletion();
}
}
public static class CameraCommand
@@ -89,5 +94,11 @@ namespace AibisDream.Framework
Vector3 targetPos = new Vector3(x, y, -10);
return CameraKit.Instance.TransCameraAsync(targetPos, duration);
}
[YarnCommand("shake_camera")]
public static IEnumerator ShakeCamera(float duration, float strength, int vibrate = 10)
{
return CameraKit.Instance.ShakeCamera(duration, strength, vibrate);
}
}
}
@@ -49,8 +49,7 @@ namespace AibisDream.Framework
{
if (Input.GetKeyDown(KeyCode.K))
{
MonoCenter.Mono.StartCoroutine(FixSystemCenter.SystemDic.Get<CoolingSystem>().OpenCoolingSystem());
MonoCenter.Mono.StartCoroutine(FixSystemCenter.SystemDic.Get<CoolingSystem>().OpenBottleUI());
MonoCenter.Mono.StartCoroutine(FixSystemYarnCommand.SwitchFixSystemTo("Gear"));
}
}
}
+3 -5
View File
@@ -10,15 +10,13 @@ namespace AibisDream
[SerializeField] private int curLevel;
[SerializeField] private float heightY;
private Vector3 _offset;
[SerializeField] private float minY;
public bool IsBlock { get; }
private void Awake()
{
_engineSystem = transform.parent.GetComponent<EngineSystem>();
_offset = transform.position;
}
public void StartMove()
@@ -35,13 +33,13 @@ namespace AibisDream
private void UpdateTransform()
{
float levelHeight = heightY / (_engineSystem.config.maxLevel - 1);
var curY = levelHeight * curLevel + _offset.y;
var curY = levelHeight * curLevel + minY;
transform.position = new Vector3(transform.position.x, curY, transform.position.z);
}
private void SwitchAirLevel(float mouseY)
{
mouseY -= _offset.y;
mouseY -= minY;
float levelHeight = heightY / _engineSystem.config.maxLevel;
curLevel = (int)(mouseY / levelHeight);
@@ -35,9 +35,10 @@ namespace AibisDream
_cover = transform.Find("Cover").GetComponent<SpriteRenderer>();
}
private void OnEnable()
private void Start()
{
engineData = new EngineData(config.invalidTime);
DialogController.Instance?.SetVariable("$curAirLevel", 2);
}
private void Update()
@@ -179,7 +180,7 @@ namespace AibisDream
config = data;
// 重置Data
OnEnable();
Start();
}
public override void Save()
@@ -275,8 +276,8 @@ namespace AibisDream
if (inAirRange && !curInAirRange && !isSuccess)
{
// 出界的话
if (curAir > curAirMax) DialogController.Instance.StartDialogNode("调速popup-过速");
if (curAir < curAirMin) DialogController.Instance.StartDialogNode("调速popup-掉速");
if (curAir > curAirMax) DialogController.Instance?.StartDialogNode("引擎过速");
if (curAir < curAirMin) DialogController.Instance?.StartDialogNode("引擎掉速");
isValid.Value = false;
}
+52 -7
View File
@@ -7,15 +7,26 @@ namespace AibisDream
{
public class Gear : MonoBehaviour, IMoveable
{
[SerializeField] public float radius;
[SerializeField] public Sprite gearSprite;
private const int ShakeAngle = 15;
public float radius;
public Sprite gearSprite;
public bool isBroken;
public bool isDisc;
public float speed;
private Tweener _rotationTweener;
#region
private GearSystem _gearSystem;
private CircleCollider2D _circleCollider;
private SpriteRenderer _spriteRenderer;
#endregion
public Shaft targetShaft;
public bool IsBlock { get; }
private void Awake()
@@ -34,7 +45,7 @@ namespace AibisDream
/// <summary>
/// 设置齿轮信息
/// </summary>
public void InitGearModel()
private void InitGearModel()
{
// 给齿轮赋值
_spriteRenderer.sprite = gearSprite;
@@ -43,6 +54,39 @@ namespace AibisDream
_spriteRenderer.size = new Vector2(radius * 2, radius * 2);
}
public void UpdateRotation(float newSpeed, float speedScale)
{
// 初始化速度
speed = Mathf.Abs(newSpeed);
var target = newSpeed >= 0 ? new Vector3(0, 0, 360) : new Vector3(0, 0, -360);
_rotationTweener?.Kill();
// 打开动画
if (isBroken)
{
_rotationTweener = transform.DORotate(new Vector3(0, 0, ShakeAngle), ShakeAngle / speed / 360,
RotateMode.LocalAxisAdd)
.SetEase(Ease.Linear)
.SetLoops(-1, LoopType.Yoyo)
.SetDelay(0.1f);
}
else
{
_rotationTweener = transform.DORotate(target, 1 / Mathf.Abs(speed), RotateMode.LocalAxisAdd)
.SetEase(Ease.Linear)
.SetLoops(-1, LoopType.Incremental);
}
_rotationTweener.timeScale = speedScale;
}
public void UpdateSpeedScale(float speedScale)
{
_rotationTweener.timeScale = speedScale;
}
#region
public void StartMove()
{
targetShaft?.PlugOutGear();
@@ -69,6 +113,7 @@ namespace AibisDream
targetShaft = tempShaft;
}
}
}
}
#endregion
}
}
+133 -53
View File
@@ -5,6 +5,7 @@ using AibisDream.FixSystem;
using AibisDream.Framework;
using AibisDream.Kit;
using DG.Tweening;
using UnityEditor;
using UnityEngine;
namespace AibisDream
@@ -13,15 +14,29 @@ namespace AibisDream
{
#region
[SerializeField] private GameObject gearPrefab;
[SerializeField] private GameObject shaftPrefab;
private Shaft[] _shafts;
public GameObject gearPrefab;
public GameObject shaftPrefab;
private Transform _panel;
private SpriteRenderer _cover;
private Transform _coverStick;
private Transform _needle;
private ShaftGraph _shaftGraph;
#endregion
private ShaftGraph _shaftGraph;
public Vector3 coverUpPos;
public Vector3 coverDownPos;
public Vector3 panelOpenPos;
public Vector3 panelClosePos;
public Vector3 needleEmptyPos;
public Vector3[] needlePosArr;
public float needleDuration;
private bool _isTargetReached;
private bool _isDiscReady;
private void Awake()
{
@@ -33,18 +48,20 @@ namespace AibisDream
public void Init()
{
FixSystemCenter.SystemDic.Register(this);
_shafts = GetComponentsInChildren<Shaft>();
_cover = transform.Find("Cover").GetComponent<SpriteRenderer>();
_coverStick = transform.Find("Cover Stick");
_panel = transform.Find("Empty Shafts Panel");
_needle = transform.Find("Needle");
}
public void Start()
{
if (_shafts != null && _shafts.Length != 0)
{
_shaftGraph = new ShaftGraph(_shafts);
}
_shaftGraph?.Clear();
var shafts = transform.Find("Shafts").GetComponentsInChildren<Shaft>();
var panelShafts = _panel.GetComponentsInChildren<Shaft>();
_shaftGraph = new ShaftGraph(shafts, panelShafts);
_panel.gameObject.SetActive(false);
}
#endregion
@@ -71,23 +88,6 @@ namespace AibisDream
return _shaftGraph.CheckGearSuitable(sourceShaft, gearRadius);
}
/// <summary>
/// 生成齿轮
/// </summary>
/// <param name="pos">位置</param>
/// <param name="radius">半径</param>
/// <param name="sprite">齿轮图片</param>
/// <returns>齿轮Obj</returns>
public GameObject InitGear(Vector3 pos, float radius, Sprite sprite)
{
GameObject gearObj = Instantiate(gearPrefab, pos, Quaternion.identity);
gearObj.transform.parent = transform.Find("Gears").transform;
Gear gear = gearObj.GetComponent<Gear>();
gear.radius = radius;
gear.gearSprite = sprite;
return gearObj;
}
/// <summary>
/// 某个轴上齿轮发生变化时更新临接关系
/// </summary>
@@ -97,31 +97,80 @@ namespace AibisDream
_shaftGraph?.ChangeVertex(shaftId);
}
public void Succeed()
#region
public void CheckGearSystemState()
{
Debug.Log("达成目标");
DialogController.Instance.StartDialogNode("齿轮系统状态变化");
}
public void ReachTargetSpeed()
{
if (!_isTargetReached)
{
DialogController.Instance?.SetVariable("$speedReached", true);
_isTargetReached = true;
}
}
public void ResetTargetState()
{
if (_isTargetReached)
{
DialogController.Instance?.SetVariable("$speedReached", false);
_isTargetReached = false;
}
}
#endregion
public IEnumerator OpenCover()
{
// 滑杆旋转
yield return _coverStick.DORotate(new Vector3(0, 0, -90f), 1f).WaitForCompletion();
// 盖子移动
// 旋转拉杆
yield return _coverStick.DORotate(new Vector3(0, 0, -90), 1.5f).WaitForCompletion();
//
var sq = DOTween.Sequence();
sq.Join(_cover.transform.DOLocalMove(new Vector3(-1.86f, 2.11f, 0), 1f));
sq.Join(_cover.DOFade(0, 1f));
sq.Join(_cover.transform.DOLocalMove(coverUpPos, 1.5f));
sq.Join(_cover.DOFade(0, 1.5f));
yield return sq.WaitForCompletion();
}
public IEnumerator CloseCover()
{
// 盖子移动
//
var sq = DOTween.Sequence();
sq.Join(_cover.transform.DOLocalMove(new Vector3(-1.86f, -0.38f, 0), 1f));
sq.Join(_cover.DOFade(0, 1f));
sq.Join(_cover.transform.DOLocalMove(coverDownPos, 1.5f));
sq.Join(_cover.DOFade(1, 1.5f));
yield return sq.WaitForCompletion();
// 滑杆旋转
yield return _coverStick.DORotate(new Vector3(0, 0, 0), 1f).WaitForCompletion();
// 旋转拉杆
yield return _coverStick.DORotate(new Vector3(0, 0, 0), 1.5f).WaitForCompletion();
}
public IEnumerator OpenGearPanel()
{
_panel.gameObject.SetActive(true);
yield return _panel.DOLocalMove(panelOpenPos, 1f).WaitForCompletion();
}
public IEnumerator CloseGearPanel()
{
yield return _panel.DOLocalMove(panelClosePos, 1f).WaitForCompletion();
_panel.gameObject.SetActive(false);
}
public IEnumerator MoveNeedle(int discIdx)
{
Vector3 target;
if (discIdx > needlePosArr.Length || discIdx <= 0)
{
target = needleEmptyPos;
}
else
{
target = needlePosArr[discIdx - 1];
}
yield return _needle.DORotate(target, needleDuration).WaitForCompletion();
}
#region
@@ -163,23 +212,51 @@ namespace AibisDream
private void LoadByData(GearSystemData gearSystemData)
{
// 先清除
var shaftRoot = transform.Find("Shafts");
var shaftsObj = shaftRoot.GetComponentsInChildren<Shaft>();
var shaftsObj = GetComponentsInChildren<Shaft>(true);
foreach (var oldShaft in shaftsObj)
{
#if UNITY_EDITOR
DestroyImmediate(oldShaft.gameObject);
if (!EditorApplication.isPlaying)
{
DestroyImmediate(oldShaft.gameObject);
}
else
{
Destroy(oldShaft.gameObject);
}
#else
Destory(oldShaft.gameObject);
Destroy(oldShaft.gameObject);
#endif
}
// 再添加
foreach (var shaftData in gearSystemData.shaftLevelDataArray)
var shaftRoot = transform.Find("Shafts");
var shafts = new Shaft[gearSystemData.shaftLevelDataArray.Length];
for (int i = 0; i < gearSystemData.shaftLevelDataArray.Length; i++)
{
var newShaft = Instantiate(shaftPrefab, shaftRoot).GetComponent<Shaft>();
newShaft.Load(shaftData);
newShaft.Load(gearSystemData.shaftLevelDataArray[i]);
shafts[i] = newShaft;
}
var panelShaftRoot = transform.Find("Empty Shafts Panel");
var panelShafts = new Shaft[gearSystemData.panelShaftArray.Length];
for (int i = 0; i < gearSystemData.panelShaftArray.Length; i++)
{
var newShaft = Instantiate(shaftPrefab, panelShaftRoot).GetComponent<Shaft>();
newShaft.Load(gearSystemData.panelShaftArray[i]);
panelShafts[i] = newShaft;
}
_cover = transform.Find("Cover").GetComponent<SpriteRenderer>();
_coverStick = transform.Find("Cover Stick");
_panel = transform.Find("Empty Shafts Panel");
#if UNITY_EDITOR
if (!EditorApplication.isPlaying) return;
#endif
_shaftGraph?.Clear();
_shaftGraph = new ShaftGraph(shafts, panelShafts);
}
public override void Save()
@@ -196,17 +273,19 @@ namespace AibisDream
private void SaveByKey(string key)
{
var shaftsObj = transform.Find("Shafts").GetComponentsInChildren<Shaft>();
var shaftDataArray = new ShaftLevelData[shaftsObj.Length];
for (int i = 0; i < shaftDataArray.Length; i++)
{
shaftDataArray[i] = shaftsObj[i].Save();
}
var shaftDataArray = transform.Find("Shafts")
.GetComponentsInChildren<Shaft>()
.Select(shaft => shaft.Save())
.ToArray();
var panelShaftArray = transform.Find("Empty Shafts Panel")
.GetComponentsInChildren<Shaft>()
.Select(shaft => shaft.Save())
.ToArray();
var data = new GearSystemData
{
shaftLevelDataArray = shaftDataArray
shaftLevelDataArray = shaftDataArray,
panelShaftArray = panelShaftArray
};
ConfigUtil.Instance.SaveConfig(data, DataPath + key);
@@ -225,5 +304,6 @@ namespace AibisDream
public struct GearSystemData
{
public ShaftLevelData[] shaftLevelDataArray;
public ShaftLevelData[] panelShaftArray;
}
}
@@ -0,0 +1,42 @@
using System.Collections;
using AibisDream.FixSystem;
using UnityEngine;
using Yarn.Unity;
namespace AibisDream
{
public static class GearYarnCommand
{
[YarnCommand("move_needle")]
public static IEnumerator MoveNeedle()
{
DialogController.Instance.TryGetVariable<float>("$discIdx", out var discIdx);
Debug.Log(discIdx);
return FixSystemCenter.SystemDic.Get<GearSystem>().MoveNeedle((int) discIdx);
}
[YarnCommand("open_gear_panel")]
public static IEnumerator OpenGearPanel()
{
return FixSystemCenter.SystemDic.Get<GearSystem>().OpenGearPanel();
}
[YarnCommand("close_gear_panel")]
public static IEnumerator CloseGearPanel()
{
return FixSystemCenter.SystemDic.Get<GearSystem>().CloseGearPanel();
}
[YarnCommand("close_gear_cover")]
public static IEnumerator CloseCover()
{
return FixSystemCenter.SystemDic.Get<GearSystem>().CloseCover();
}
[YarnCommand("open_gear_cover")]
public static IEnumerator OpenCover()
{
return FixSystemCenter.SystemDic.Get<GearSystem>().OpenCover();
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 73b9ebccdc5e4c12be4c93d3e0a71e52
timeCreated: 1735397288
+87 -66
View File
@@ -1,6 +1,5 @@
using System;
using AibisDream.Framework;
using AibisDream.Utility;
using DG.Tweening;
using Newtonsoft.Json;
using UnityEngine;
@@ -14,11 +13,14 @@ namespace AibisDream
[SerializeField] public ShaftType shaftType;
// 初始齿轮
[SerializeField] private bool hasGear;
[SerializeField] private bool isInitGearBroken;
[SerializeField] private bool isInitGearDisc;
[SerializeField] private float initRadius;
[SerializeField] private Sprite initSprite;
[SerializeField] private bool hasGear;
[SerializeField] private int discIdx;
[SerializeField] private GameObject childGear;
[SerializeField] private Gear childGear;
// 初始角速度
[SerializeField] private float initialSpeed;
@@ -28,8 +30,10 @@ namespace AibisDream
// 当前角速度
public float speed;
private float _speedScale = 1;
public bool IsPluggable => shaftType is ShaftType.Pluggable or ShaftType.Driver or ShaftType.Target;
public bool IsBroken => childGear != null && childGear.isBroken;
public bool IsDisc => childGear != null && childGear.isDisc;
/// <summary>
/// 当前齿轮半径
@@ -43,13 +47,7 @@ namespace AibisDream
return 0;
}
if (IsPluggable)
{
Gear gear = childGear.GetComponent<Gear>();
return gear.radius;
}
return initRadius;
return childGear.radius;
}
}
@@ -65,63 +63,73 @@ namespace AibisDream
/// </summary>
public void InitShaft()
{
_gearSystem = transform.parent.parent.GetComponent<GearSystem>();
// 如果不带齿轮
if (!hasGear) return;
// 如果带齿轮,要根据齿轮类型生成
childGear = IsPluggable ? InitPluggableGear() : InitStaticGear();
childGear = InitGear(initRadius, initSprite, isInitGearBroken, isInitGearDisc);
speed = initialSpeed;
UpdateSpeed();
childGear.UpdateRotation(speed, _speedScale);
}
private GameObject InitStaticGear()
private Gear InitGear(float radius, Sprite sprite, bool isBroken = false, bool isDisc = false)
{
GameObject staticGear = transform.GetChild(0).gameObject;
// 添加齿轮图片
staticGear.SetActive(true);
var staticGearRenderer = staticGear.GetComponent<SpriteRenderer>();
staticGearRenderer.sprite = initSprite;
staticGearRenderer.size = new Vector2(initRadius * 2, initRadius * 2);
// 如果有初速,就要开始转动了
if (!CommonUtil.IsZero(initialSpeed))
{
staticGear.transform.DORotate(new Vector3(0, 0, 360), 1 / initialSpeed, RotateMode.LocalAxisAdd)
.SetEase(Ease.Linear).SetLoops(-1, LoopType.Incremental);
}
return staticGear;
}
private GameObject InitPluggableGear()
{
var gear = _gearSystem.InitGear(transform.position, initRadius, initSprite);
gear.GetComponent<Gear>().targetShaft = this;
var gear = Instantiate(_gearSystem.gearPrefab, transform).GetComponent<Gear>();
gear.radius = radius;
gear.gearSprite = sprite;
gear.isBroken = isBroken;
gear.targetShaft = this;
gear.isDisc = isDisc;
return gear;
}
public void PlugInGear(Gear gear)
{
childGear = gear.gameObject;
childGear = gear;
gear.transform.parent = transform;
_gearSystem.ChangeGraphVertex(GetInstanceID());
// 面板里的齿轮才能触发
if (transform.parent.name == "Shafts")
{
OnGearPlugIn();
_gearSystem.CheckGearSystemState();
}
}
private void OnGearPlugIn()
{
// 破损齿轮插进来就发一次事件,交给yarn处理
if (IsBroken)
{
DialogController.Instance?.StartDialogNode("破损齿轮插入");
}
if (IsDisc)
{
DialogController.Instance?.SetVariable("$discIdx", discIdx);
}
}
public void PlugOutGear()
{
// 拔出时齿轮停转
childGear.UpdateRotation(0, _speedScale);
childGear.transform.parent = null;
childGear = null;
_gearSystem.ChangeGraphVertex(GetInstanceID());
}
public void UpdateSpeed()
public void ChangeRotateState()
{
UpdateSpeedAnima();
CheckGameState();
}
/// <summary>
/// 速度修改后改变动画
/// 速度修改后改变动画(可能改变方向)
/// </summary>
private void UpdateSpeedAnima()
{
@@ -131,34 +139,30 @@ namespace AibisDream
return;
}
if (CommonUtil.IsZero(speed))
{
childGear.transform.DOPause();
return;
}
childGear.UpdateRotation(speed, _speedScale);
}
// 更新动画
childGear.transform.DOKill();
if (speed > 0)
{
childGear.transform.DORotate(new Vector3(0, 0, 360), 1 / speed, RotateMode.LocalAxisAdd)
.SetEase(Ease.Linear).SetLoops(-1, LoopType.Incremental);
}
else
{
childGear.transform.DORotate(new Vector3(0, 0, -360), 1 / -speed, RotateMode.LocalAxisAdd)
.SetEase(Ease.Linear).SetLoops(-1, LoopType.Incremental);
}
public void UpdateSpeedScale(float newSpeedScale)
{
_speedScale = newSpeedScale;
if (!HasChildGear()) return;
childGear.UpdateSpeedScale(_speedScale);
CheckGameState();
}
private void CheckGameState()
{
if (shaftType == ShaftType.Target)
// 只有目标轴判断
if (shaftType != ShaftType.Target) return;
//
if (targetSpeed <= Mathf.Abs(speed * _speedScale))
{
if (targetSpeed <= Mathf.Abs(speed))
{
_gearSystem.Succeed();
}
_gearSystem.ReachTargetSpeed();
}
else
{
_gearSystem.ResetTargetState();
}
}
@@ -226,6 +230,16 @@ namespace AibisDream
return shaft1.GearRadius / shaft2.GearRadius;
}
public void OnDestroy()
{
if (childGear != null)
{
childGear.transform.DOKill();
}
Destroy(childGear);
Destroy(gameObject);
}
public void OnDrawGizmos()
{
Gizmos.color = Color.red;
@@ -240,9 +254,12 @@ namespace AibisDream
gameObject.name = levelData.shaftName;
transform.localPosition = levelData.ShaftPos;
initSprite = levelData.GearPic;
shaftType = levelData.shaftType;
hasGear = levelData.hasChildGear;
isInitGearBroken = levelData.isGearBroken;
isInitGearDisc = levelData.isDisc;
discIdx = levelData.discIdx;
initialSpeed = levelData.initialSpeed;
targetSpeed = levelData.targetSpeed;
initRadius = levelData.radius;
@@ -257,6 +274,9 @@ namespace AibisDream
GearPic = initSprite,
shaftType = shaftType,
hasChildGear = hasGear,
isGearBroken = isInitGearBroken,
isDisc = isInitGearDisc,
discIdx = discIdx,
initialSpeed = initialSpeed,
targetSpeed = targetSpeed,
radius = initRadius
@@ -270,22 +290,23 @@ namespace AibisDream
{
Driver, // 拥有初始速度,没有目标速度,全局仅有一个
Target, // 没有初始速度,有目标速度,全局有多个
Constant, // 没有初始速度,没有目标速度,不可拖动
Pluggable // 没有初始速度,没有目标速度,可拔插
}
[Serializable]
public struct ShaftLevelData
{
public string shaftName;
// 关卡数据
public ShaftType shaftType;
public float initialSpeed;
public float targetSpeed;
public bool hasChildGear;
public float radius;
public float isGearBroken;
public float brokenAngle;
public bool isGearBroken;
public bool isDisc;
public int discIdx;
// 外形数据
public SerializableVector3 shaftPos;
+41 -12
View File
@@ -1,4 +1,6 @@
using System;
using System.Linq;
using AibisDream.FixSystem;
using UnityEngine;
namespace AibisDream
@@ -9,6 +11,7 @@ namespace AibisDream
private readonly int _vertexSize;
// 顶点Map
private readonly Shaft[] _vertexArray;
private readonly Shaft[] _panelShafts;
// 邻接表
private float[,] _edgeTable;
// 遍历记录
@@ -16,24 +19,32 @@ namespace AibisDream
// 动力轴序号
private readonly int _rootIdx;
public ShaftGraph(Shaft[] shafts)
public ShaftGraph(Shaft[] shafts, Shaft[] panelShafts)
{
// 为轴赋值
_vertexSize = shafts.Length;
_vertexRecordArray = new bool[_vertexSize];
_vertexArray = shafts;
_panelShafts = panelShafts;
foreach (var shaft in _vertexArray)
{
shaft.InitShaft();
}
foreach (var shaft in _panelShafts)
{
shaft.InitShaft();
}
// 寻找唯一的驱动轴序号
_rootIdx = FindDriverIdx();
// 生成边邻接表
GeneEdgeTable();
UpdateSpeed();
var engine = FixSystemCenter.SystemDic.Get<EngineSystem>();
engine.UpdateDashboard += Accelerate;
}
private int FindDriverIdx()
@@ -83,6 +94,7 @@ namespace AibisDream
{
// 找到对应idx
int idx = TranInstanceIDToIdx(instanceID);
if (idx == -1) return;
// 更新该节点对应的邻接表
for (int i = 0; i < _vertexSize; i++)
@@ -128,7 +140,7 @@ namespace AibisDream
/// <summary>
/// 更新当前所有轴的速度
/// </summary>
public void UpdateSpeed()
private void UpdateSpeed()
{
// 清除遍历记录
Array.Clear(_vertexRecordArray, 0, _vertexSize);
@@ -140,7 +152,7 @@ namespace AibisDream
// 更新完速度后统一更新动画
foreach (var shaft in _vertexArray)
{
shaft.UpdateSpeed();
shaft.ChangeRotateState();
}
}
@@ -165,8 +177,11 @@ namespace AibisDream
// 已遍历的轴加上标记
_vertexRecordArray[i] = true;
// 继续寻找相邻齿轮
UpdateShaftSpeedByIdx(i);
// 如果当前齿轮未破碎,继续更新相邻齿轮
if (!_vertexArray[i].IsBroken)
{
UpdateShaftSpeedByIdx(i);
}
}
}
}
@@ -199,9 +214,11 @@ namespace AibisDream
// 查询距离最近的,可吸附的Shaft
Shaft closestShaft = null;
float minDistance = -1;
foreach (var vertex in _vertexArray)
var totalArray = _vertexArray.Concat(_panelShafts);
foreach (var vertex in totalArray)
{
if (vertex.IsPluggable && !vertex.HasChildGear())
if (!vertex.HasChildGear())
{
float tempDis = Vector3.Distance(vertex.transform.position, pos);
if (minDistance < 0 || tempDis < minDistance)
@@ -239,7 +256,7 @@ namespace AibisDream
{
if (i == idx) continue; // 不需要计算和自身的关系
float availableDis = Shaft.CalcShaftAvailableDis(sourceShaft.transform.position, _vertexArray[i]);
if (availableDis < gearRadius - 0.15f)
if (availableDis < gearRadius - 0.05f)
{
isShaftAvailable = false;
break;
@@ -249,10 +266,22 @@ namespace AibisDream
return isShaftAvailable;
}
public void AddDriverSpeed(float curSpeed)
/// <summary>
/// 通过引擎系统加速
/// </summary>
/// <param name="engineData"></param>
private void Accelerate(EngineData engineData)
{
foreach (var shaft in _vertexArray)
{
if (shaft.HasChildGear()) shaft.UpdateSpeedScale(1 + engineData.curSpeed);
}
}
public void Clear()
{
var engine = FixSystemCenter.SystemDic.Get<EngineSystem>();
engine.UpdateDashboard -= Accelerate;
}
}
}
+13 -10
View File
@@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using AibisDream.FixSystem;
public class UFSystem : MonoBehaviour
{
// Start is called before the first frame update
@@ -9,52 +10,54 @@ public class UFSystem : MonoBehaviour
private GameObject _UFModule;
public GameObject UFPanel;
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void Awake()
{
FixSystemCenter.SystemDic.Register(this);
}
public void OpenUFView()
{
if(!UFPanel.activeInHierarchy)
if (!UFPanel.activeInHierarchy)
{
UFPanel.SetActive(true);
}
}
public void CloseUFView()
{
if(UFPanel.activeInHierarchy)
if (UFPanel.activeInHierarchy)
{
UFPanel.SetActive(false);
}
}
public void OpenCover()
{
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
_UFCover = bodyModuleSystem.FindBodyModuleByName("UF").transform.Find("Cover").gameObject;
if(_UFCover.activeInHierarchy)
if (_UFCover.activeInHierarchy)
{
_UFCover.SetActive(false);
}
}
public void RemoveUF()
public void RemoveUF()
{
var bodyModuleSystem = FixSystemCenter.SystemDic.Get<BodyModuleSystem>();
_UFModule = bodyModuleSystem.FindBodyModuleByName("UF").gameObject;
if(_UFModule.activeInHierarchy)
if (_UFModule.activeInHierarchy)
{
_UFModule.SetActive(false);
}
}
}
}
@@ -1 +1 @@
{"hasHotErr":false,"moduleDataArray":[{"moduleName":"Lung","modulePicPath":"","modulePos":{"x":0.91,"y":1.84,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":1,"waveHasError":true,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"Heart","modulePicPath":"","modulePos":{"x":-3.89,"y":1.44,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"GearBox","modulePicPath":"","modulePos":{"x":-3.11,"y":0.08,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"Liver","modulePicPath":"","modulePos":{"x":1.02,"y":-3.3,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"Stomach","modulePicPath":"","modulePos":{"x":-3.77,"y":-3.81,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false}]}
{"hasHotErr":false,"moduleDataArray":[{"moduleName":"Lung","modulePicPath":"","modulePos":{"x":0.6,"y":1.85,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":1,"waveHasError":true,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"Heart","modulePicPath":"","modulePos":{"x":-4.54,"y":0.92,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"GearBox","modulePicPath":"","modulePos":{"x":-3.259,"y":0.115,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"Liver","modulePicPath":"","modulePos":{"x":1.011,"y":-3.065,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"Stomach","modulePicPath":"","modulePos":{"x":-3.977,"y":-3.819,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false}]}
@@ -1 +1 @@
{"hasHotErr":false,"moduleDataArray":[]}
{"hasHotErr":false,"moduleDataArray":[{"moduleName":"Lung","modulePicPath":"","modulePos":{"x":0.6,"y":1.85,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":1,"waveHasError":true,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"Heart","modulePicPath":"","modulePos":{"x":-4.54,"y":0.92,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"GearBox","modulePicPath":"","modulePos":{"x":-3.259,"y":0.115,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"Liver","modulePicPath":"","modulePos":{"x":1.011,"y":-3.065,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false},{"moduleName":"Stomach","modulePicPath":"","modulePos":{"x":-3.977,"y":-3.819,"z":0.0},"socketPos":{"x":0.005,"y":-0.011,"z":0.0},"indicatorPos":{"x":0.0,"y":0.0,"z":0.0},"waveformType":0,"waveHasError":false,"ignoreWaveCheck":false,"cantStopRunning":false}]}
@@ -1 +1,200 @@
{"shaftLevelDataArray":[{"shaftName":"Empty Pluggable Shaft3","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.15,"shaftPos":{"x":-1.118,"y":-0.256,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Empty Pluggable Shaft2","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.15,"shaftPos":{"x":-1.087,"y":-0.693,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Empty Pluggable Shaft1","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.15,"shaftPos":{"x":-1.135,"y":0.182,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft9","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"shaftPos":{"x":-1.71000111,"y":-0.9590002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮A"},{"shaftName":"Pluggable Shaft8","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.18,"shaftPos":{"x":-2.59800124,"y":-0.941000164,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft7","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.09,"shaftPos":{"x":-2.22800064,"y":-0.453000158,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft6","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"shaftPos":{"x":-1.855001,"y":-0.3910001,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft5","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"shaftPos":{"x":-2.0,"y":-0.6250002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮A"},{"shaftName":"Pluggable Shaft4","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.27,"shaftPos":{"x":-2.18600082,"y":-0.08200007,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮A"},{"shaftName":"Pluggable Shaft3","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"shaftPos":{"x":-1.97600079,"y":0.300000042,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft2","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.09,"shaftPos":{"x":-1.70600092,"y":0.307999939,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft1","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"shaftPos":{"x":-2.40600061,"y":0.295000046,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Driver Shaft","shaftType":0,"initialSpeed":1.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"shaftPos":{"x":-2.188,"y":0.445000023,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Target Shaft","shaftType":1,"initialSpeed":0.0,"targetSpeed":0.3,"hasChildGear":true,"radius":0.27,"shaftPos":{"x":-2.1600008,"y":-0.9610002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"}]}
{
"shaftLevelDataArray": [
{
"shaftName": "Empty Pluggable Shaft3",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": false,
"radius": 0.15,
"shaftPos": {
"x": -1.118,
"y": -0.256,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Empty Pluggable Shaft2",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": false,
"radius": 0.15,
"shaftPos": {
"x": -1.087,
"y": -0.693,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Empty Pluggable Shaft1",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": false,
"radius": 0.15,
"shaftPos": {
"x": -1.135,
"y": 0.182,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Pluggable Shaft9",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": true,
"radius": 0.18,
"shaftPos": {
"x": -1.71000111,
"y": -0.9590002,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"
},
{
"shaftName": "Pluggable Shaft8",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": false,
"radius": 0.18,
"shaftPos": {
"x": -2.59800124,
"y": -0.941000164,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Pluggable Shaft7",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": false,
"radius": 0.09,
"shaftPos": {
"x": -2.22800064,
"y": -0.453000158,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Pluggable Shaft6",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": true,
"radius": 0.18,
"shaftPos": {
"x": -1.855001,
"y": -0.3910001,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Pluggable Shaft5",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": true,
"radius": 0.09,
"shaftPos": {
"x": -2.0,
"y": -0.6250002,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"
},
{
"shaftName": "Pluggable Shaft4",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": true,
"radius": 0.27,
"shaftPos": {
"x": -2.18600082,
"y": -0.08200007,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"
},
{
"shaftName": "Pluggable Shaft3",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": true,
"radius": 0.18,
"shaftPos": {
"x": -1.97600079,
"y": 0.300000042,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Pluggable Shaft2",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": false,
"radius": 0.09,
"shaftPos": {
"x": -1.70600092,
"y": 0.307999939,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Pluggable Shaft1",
"shaftType": 3,
"initialSpeed": 0.0,
"targetSpeed": 0.0,
"hasChildGear": true,
"radius": 0.18,
"shaftPos": {
"x": -2.40600061,
"y": 0.295000046,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Driver Shaft",
"shaftType": 0,
"initialSpeed": 1.0,
"targetSpeed": 0.0,
"hasChildGear": true,
"radius": 0.09,
"shaftPos": {
"x": -2.188,
"y": 0.445000023,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
},
{
"shaftName": "Target Shaft",
"shaftType": 1,
"initialSpeed": 0.0,
"targetSpeed": 0.3,
"hasChildGear": true,
"radius": 0.27,
"shaftPos": {
"x": -2.1600008,
"y": -0.9610002,
"z": 0.0
},
"gearPicPath": "Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"
}
]
}
@@ -1 +1 @@
{"shaftLevelDataArray":[{"shaftName":"Empty Pluggable Shaft3","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.15,"shaftPos":{"x":-1.118,"y":-0.256,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Empty Pluggable Shaft2","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.15,"shaftPos":{"x":-1.087,"y":-0.693,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Empty Pluggable Shaft1","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.15,"shaftPos":{"x":-1.135,"y":0.182,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft9","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"shaftPos":{"x":-1.71000111,"y":-0.9590002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮A"},{"shaftName":"Pluggable Shaft8","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.18,"shaftPos":{"x":-2.59800124,"y":-0.941000164,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft7","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.09,"shaftPos":{"x":-2.22800064,"y":-0.453000158,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft6","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"shaftPos":{"x":-1.855001,"y":-0.3910001,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft5","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"shaftPos":{"x":-2.0,"y":-0.6250002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮A"},{"shaftName":"Pluggable Shaft4","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.27,"shaftPos":{"x":-2.18600082,"y":-0.08200007,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮A"},{"shaftName":"Pluggable Shaft3","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"shaftPos":{"x":-1.97600079,"y":0.300000042,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft2","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.09,"shaftPos":{"x":-1.70600092,"y":0.307999939,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Pluggable Shaft1","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"shaftPos":{"x":-2.40600061,"y":0.295000046,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Driver Shaft","shaftType":0,"initialSpeed":1.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"shaftPos":{"x":-2.188,"y":0.445000023,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"},{"shaftName":"Target Shaft","shaftType":1,"initialSpeed":0.0,"targetSpeed":0.3,"hasChildGear":true,"radius":0.27,"shaftPos":{"x":-2.1600008,"y":-0.9610002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面/变速箱齿轮C"}]}
{"shaftLevelDataArray":[{"shaftName":"Target","shaftType":1,"initialSpeed":0.0,"targetSpeed":0.3,"hasChildGear":true,"radius":1.0,"shaftPos":{"x":6.629,"y":0.684,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Driver","shaftType":0,"initialSpeed":1.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.5,"shaftPos":{"x":4.64,"y":3.33,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"},{"shaftName":"Constant","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.5,"shaftPos":{"x":5.973,"y":2.457,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮B"},{"shaftName":"Pluggable","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.5,"shaftPos":{"x":5.516,"y":3.867,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Empty","shaftType":3,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.5,"shaftPos":{"x":6.56,"y":4.334,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"}]}
@@ -0,0 +1 @@
{"shaftLevelDataArray":[{"shaftName":"Pluggable Shaft9","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.69999993,"y":-0.919,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"},{"shaftName":"Pluggable Shaft8","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.588,"y":-0.901,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft7","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.21799946,"y":-0.413000017,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft6","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.84499979,"y":-0.350999951,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱唱片齿轮"},{"shaftName":"Pluggable Shaft5","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.98999882,"y":-0.585000038,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"},{"shaftName":"Pluggable Shaft4","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.27,"isGearBroken":true,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.17599964,"y":-0.04199993,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft3","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.9659996,"y":0.340000182,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft2","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.70999885,"y":0.348000079,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft1","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.39599943,"y":0.3350002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Driver Shaft","shaftType":0,"initialSpeed":1.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.17799878,"y":0.4850002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Target Shaft","shaftType":1,"initialSpeed":0.0,"targetSpeed":0.3,"hasChildGear":true,"radius":0.27,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.14999962,"y":-0.921000063,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"}],"panelShaftArray":[{"shaftName":"Panel Shaft1","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":true,"discIdx":0,"shaftPos":{"x":-0.019,"y":0.717,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱唱片齿轮"},{"shaftName":"Panel Shaft2","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.27,"isGearBroken":true,"isDisc":false,"discIdx":0,"shaftPos":{"x":-0.011,"y":0.003,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/坏齿轮A"},{"shaftName":"Panel Shaft3","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.0,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-0.011,"y":-0.668,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"}]}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c21db38b4480c6b45a41503bd5f078e4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1 @@
{"shaftLevelDataArray":[{"shaftName":"Pluggable Shaft9","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":3,"shaftPos":{"x":-1.722,"y":-0.904,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"},{"shaftName":"Pluggable Shaft8","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.588,"y":-0.892,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft7","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.21799946,"y":-0.413000017,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft6","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":2,"shaftPos":{"x":-1.868,"y":-0.350999951,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱唱片齿轮"},{"shaftName":"Pluggable Shaft5","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.996,"y":-0.582,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"},{"shaftName":"Pluggable Shaft4","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.27,"isGearBroken":true,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.17599964,"y":-0.04199993,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/坏齿轮A"},{"shaftName":"Pluggable Shaft3","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.9659996,"y":0.340000182,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft2","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":1,"shaftPos":{"x":-1.70999885,"y":0.348000079,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft1","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.39599943,"y":0.3350002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Driver Shaft","shaftType":0,"initialSpeed":1.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.17799878,"y":0.4850002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Target Shaft","shaftType":1,"initialSpeed":0.0,"targetSpeed":0.3,"hasChildGear":true,"radius":0.27,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.156,"y":-0.896,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"}],"panelShaftArray":[{"shaftName":"Panel Shaft1","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":true,"discIdx":0,"shaftPos":{"x":-0.019,"y":0.717,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱唱片齿轮"},{"shaftName":"Panel Shaft2","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.27,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-0.011,"y":0.003,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Panel Shaft3","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.0,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-0.011,"y":-0.668,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"}]}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4b214c36ca1f2084fa03f508cb369846
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1 +1 @@
{"shaftLevelDataArray":[]}
{"shaftLevelDataArray":[{"shaftName":"Pluggable Shaft9","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.69999993,"y":-0.919,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"},{"shaftName":"Pluggable Shaft8","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.588,"y":-0.901,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft7","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.21799946,"y":-0.413000017,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft6","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.84499979,"y":-0.350999951,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱唱片齿轮"},{"shaftName":"Pluggable Shaft5","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.98999882,"y":-0.585000038,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮A"},{"shaftName":"Pluggable Shaft4","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.27,"isGearBroken":true,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.17599964,"y":-0.04199993,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft3","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.9659996,"y":0.340000182,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft2","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-1.70999885,"y":0.348000079,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Pluggable Shaft1","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.39599943,"y":0.3350002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Driver Shaft","shaftType":0,"initialSpeed":1.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.09,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.17799878,"y":0.4850002,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"},{"shaftName":"Target Shaft","shaftType":1,"initialSpeed":0.0,"targetSpeed":0.3,"hasChildGear":true,"radius":0.27,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-2.14999962,"y":-0.921000063,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"}],"panelShaftArray":[{"shaftName":"Panel Shaft1","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.18,"isGearBroken":false,"isDisc":true,"discIdx":0,"shaftPos":{"x":-0.019,"y":0.717,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱唱片齿轮"},{"shaftName":"Panel Shaft2","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":true,"radius":0.27,"isGearBroken":true,"isDisc":false,"discIdx":0,"shaftPos":{"x":-0.011,"y":0.003,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/坏齿轮A"},{"shaftName":"Panel Shaft3","shaftType":2,"initialSpeed":0.0,"targetSpeed":0.0,"hasChildGear":false,"radius":0.0,"isGearBroken":false,"isDisc":false,"discIdx":0,"shaftPos":{"x":-0.011,"y":-0.668,"z":0.0},"gearPicPath":"Art/Fix/Stone/身体维修界面导出_1227/变速箱齿轮C"}]}