From 0237c32950120d5305f62084a5f2aec7ef58895e Mon Sep 17 00:00:00 2001 From: bottlefish <781230111@qq.com> Date: Wed, 13 Nov 2024 03:19:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=88=E5=AD=98=E4=B8=80=E4=B8=AA=E7=89=88?= =?UTF-8?q?=E6=9C=AC....?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../佩佩/Scripts/EyeTransitionManager.cs | 1 + Assets/Prototype/佩佩/Scripts/UFProcess.cs | 70 +- Assets/Prototype/佩佩/佩佩视觉模块.unity | 42 +- .../Resources/Yarn/PeipeiNew2/PeipeiNew2.yarn | 647 +++++++++++------- Assets/Scenes/Persistence.unity | 194 +++--- .../Scripts/Dialog System/DialogController.cs | 1 + Assets/Scripts/FixSystem/Cable/Plug.cs | 10 + .../FixSystem/Scope/OscilloscopeController.cs | 3 + Assets/Scripts/FixSystem/Tools/Module.cs | 99 ++- Assets/Scripts/FixSystem/Tools/ToolManager.cs | 45 +- Assets/Scripts/Mouse/MouseCursorManager.cs | 114 +-- 11 files changed, 733 insertions(+), 493 deletions(-) diff --git a/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs b/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs index 372b1ea63..f3a99e707 100644 --- a/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs +++ b/Assets/Prototype/佩佩/Scripts/EyeTransitionManager.cs @@ -438,6 +438,7 @@ public void SetViewAvailability(string viewStateName, bool isAvailable) //MouseCursorManager.Instance.isInDeepView=false; OnGetMainView.Invoke(); DialogController.Instance.StartDialogNode("主维修界面"); + }); } diff --git a/Assets/Prototype/佩佩/Scripts/UFProcess.cs b/Assets/Prototype/佩佩/Scripts/UFProcess.cs index 0df2b8d46..5b59ffac7 100644 --- a/Assets/Prototype/佩佩/Scripts/UFProcess.cs +++ b/Assets/Prototype/佩佩/Scripts/UFProcess.cs @@ -6,7 +6,7 @@ using DG.Tweening; using Yarn.Unity; using AibisDream; -public class UFProcess : MonoBehaviour +public class UFProcess : MonoBehaviour,IViewLifecycle { public Image memoryProcessImage; // 用于显示调取记忆的表现 public Image memoryFinishedImage; // 用于显示记忆处理结束的表现 @@ -32,8 +32,31 @@ public class UFProcess : MonoBehaviour memoryProcessImage.material.SetFloat("_StrongTintFade", 1); memoryProcessImage.material.SetFloat("_GlitchFade", 0); } + public void Initialize() + { + // 初始化逻辑 + + } + + public void OnEnter() + { + + } + public void OnShow() + { + Debug.Log("UFview Show"); + StartCoroutine(ProcessMemory("liuying1-2")); + } + + public void OnExit() + { + + Debug.Log("EyeView exited."); + + } + [YarnCommand("UFprocess")] - public IEnumerator ProcessMemory(string memoryFinishedImageName, string UFImageName,bool isColorWrong=false) + public IEnumerator ProcessMemory(string memoryFinishedImageName) { AudioManager.PlayLoopAudio("UFlearning"); if (isProcessing) @@ -43,30 +66,22 @@ public class UFProcess : MonoBehaviour } isProcessing = true; // 开始处理,设置为true - Image currentImage; - if(isColorWrong) - { - currentImage=memoryFinishedImageColorWrong; - } - else - { - currentImage=memoryFinishedImage; - } + Sprite memoryFinishedSprite = Resources.Load("Art/Memory/" + memoryFinishedImageName); - Sprite UFMemorySprite = Resources.Load("Art/Photos/" + UFImageName); + Sprite UFMemorySprite = Resources.Load("Art/Photos/" + memoryFinishedImageName+"Error"); if (memoryFinishedSprite == null) { Debug.LogError("Memory finished image not found: " + memoryFinishedImageName); yield break; } - if (UFMemorySprite == null) - { - Debug.LogError("UF image not found: " + UFImageName); - yield break; - } - currentImage.material.SetFloat("_TwistUvAmount", 0); // 设置 Pixel_Fade 为0 + // if (UFMemorySprite == null) + // { + // Debug.LogError("UF image not found: " + UFImageName); + // yield break; + // } + memoryFinishedImage.material.SetFloat("_TwistUvAmount", 0); // 设置 Pixel_Fade 为0 // 开始处理记忆的表现 @@ -80,29 +95,29 @@ public class UFProcess : MonoBehaviour memorySequence.Append(memoryProcessImage.material.DOFloat(0, "_StrongTintFade", 1)); memorySequence.Join(memoryProcessImage.material.DOFloat(1, "_GlitchFade", 1)); - memorySequence.AppendInterval(3f); + memorySequence.AppendInterval(2f); // 记忆处理结束,激活memoryFinishedImage memorySequence.AppendCallback(() => { - currentImage.color= Color.white; + memoryFinishedImage.color= Color.white; memoryProcessImage.gameObject.SetActive(false); - currentImage.gameObject.SetActive(true); - currentImage.sprite = memoryFinishedSprite; // 设置记忆处理结束的图片 - currentImage.material.SetFloat("_TwistUvAmount", 0); // 设置 Pixel_Fade 为0 + memoryFinishedImage.gameObject.SetActive(true); + memoryFinishedImage.sprite = memoryFinishedSprite; // 设置记忆处理结束的图片 + memoryFinishedImage.material.SetFloat("_TwistUvAmount", 0); // 设置 Pixel_Fade 为0 }); - memorySequence.AppendInterval(2f); // 添加4秒的延时 + memorySequence.AppendInterval(0f); // 添加4秒的延时 - memorySequence.Append(currentImage.material.DOFloat(1, "_TwistUvAmount", 3f)); - memorySequence.Join(currentImage.material.DOFloat(0, "_Alpha", 3f)); + memorySequence.Append(memoryFinishedImage.material.DOFloat(1, "_TwistUvAmount", 3f)); + memorySequence.Join(memoryFinishedImage.material.DOFloat(0, "_Alpha", 3f)); memorySequence.AppendInterval(1f); // 添加1.5秒的延时 // 激活UFImage,并开始像素淡入效果 memorySequence.AppendCallback(() => { - currentImage.gameObject.SetActive(false); + memoryFinishedImage.gameObject.SetActive(false); UFImage.gameObject.SetActive(true); UFImage.color= Color.white; UFImage.sprite = UFMemorySprite; // 设置糅合后的广告图 @@ -126,6 +141,7 @@ public class UFProcess : MonoBehaviour AudioManager.PauseLoopAudio(); }); yield return memorySequence.WaitForCompletion(); + DialogController.Instance.StartDialogNode("UF进程播放完毕"); } public bool IsProcessing() { diff --git a/Assets/Prototype/佩佩/佩佩视觉模块.unity b/Assets/Prototype/佩佩/佩佩视觉模块.unity index 40ed509f8..e15fbd78c 100644 --- a/Assets/Prototype/佩佩/佩佩视觉模块.unity +++ b/Assets/Prototype/佩佩/佩佩视觉模块.unity @@ -954,6 +954,7 @@ MonoBehaviour: isallowedRepair: 1 screwsContainer: {fileID: 1848343729} targetArea: {fileID: 0} + isRepairMode: 0 socketToEnable: {fileID: 1606783662} --- !u!225 &18925493 CanvasGroup: @@ -3025,7 +3026,6 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 137938504} - - component: {fileID: 137938503} - component: {fileID: 137938505} m_Layer: 0 m_Name: UFManager @@ -3034,20 +3034,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &137938503 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 137938502} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 736e891081b782746a5c22a5e1237ad6, type: 3} - m_Name: - m_EditorClassIdentifier: - photoImage: {fileID: 938852130} - baseImage: {fileID: 687630262} --- !u!4 &137938504 Transform: m_ObjectHideFlags: 0 @@ -3255,6 +3241,7 @@ MonoBehaviour: isallowedRepair: 1 screwsContainer: {fileID: 1259092914} targetArea: {fileID: 0} + isRepairMode: 0 socketToEnable: {fileID: 1371483729} --- !u!1 &145192917 GameObject: @@ -8167,6 +8154,7 @@ MonoBehaviour: isallowedRepair: 1 screwsContainer: {fileID: 2082853501} targetArea: {fileID: 0} + isRepairMode: 0 socketToEnable: {fileID: 1606783662} --- !u!1 &293839046 GameObject: @@ -10260,6 +10248,7 @@ MonoBehaviour: - {fileID: 5156684866132484758, guid: dac7c27f779d8db4683b60ca67946a84, type: 3} - {fileID: 2485500826200128654, guid: 1afc7e4d2be0126438b5fe65aaccc901, type: 3} toolCanvas: {fileID: 1022441801} + faceCanvas: {fileID: 929696549} --- !u!1 &397718960 GameObject: m_ObjectHideFlags: 0 @@ -13768,7 +13757,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0.8509493, y: -0.86955} + m_AnchoredPosition: {x: 0.896, y: -0.94} m_SizeDelta: {x: 0.18, y: 0.18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &586222318 @@ -14506,7 +14495,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -0.59985113, y: 0.37199992} + m_AnchoredPosition: {x: -0.258, y: 0.926} m_SizeDelta: {x: 0.18, y: 0.18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &602459842 @@ -15937,7 +15926,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0.5998508, y: -0.372} + m_AnchoredPosition: {x: 0.742, y: -0.952} m_SizeDelta: {x: 0.18, y: 0.18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &651738038 @@ -23621,10 +23610,10 @@ MonoBehaviour: cameraPos: {x: 0, y: 0.5} audioName: amb_remove soundName: remove_in_1 - - manager: {fileID: 0} + - manager: {fileID: 137938505} viewPanel: {fileID: 1294333830} fixPanel: {fileID: 0} - socket: {fileID: 0} + socket: {fileID: 1606783662} viewState: 2 Visuals: - {fileID: 0} @@ -30646,6 +30635,7 @@ MonoBehaviour: isallowedRepair: 0 screwsContainer: {fileID: 376361520} targetArea: {fileID: 0} + isRepairMode: 0 socketToEnable: {fileID: 1371483729} --- !u!1 &1410030920 GameObject: @@ -30901,7 +30891,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -0.59985113, y: -0.372} + m_AnchoredPosition: {x: -1.083, y: 0.098} m_SizeDelta: {x: 0.18, y: 0.18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1434135402 @@ -38521,7 +38511,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1779014496 RectTransform: m_ObjectHideFlags: 0 @@ -38538,7 +38528,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0.5998508, y: 0.37199992} + m_AnchoredPosition: {x: 0.613, y: 0.37199992} m_SizeDelta: {x: 0.18, y: 0.18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1779014497 @@ -38863,7 +38853,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -0.079050064, y: 0.86955} + m_AnchoredPosition: {x: -0.092, y: 0.928} m_SizeDelta: {x: 0.18, y: 0.18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1814339997 @@ -40147,7 +40137,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &1848343730 RectTransform: m_ObjectHideFlags: 0 @@ -41604,7 +41594,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -0.8509493, y: 0.10694957} + m_AnchoredPosition: {x: -0.903, y: 0.10694957} m_SizeDelta: {x: 0.18, y: 0.18} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1906421257 diff --git a/Assets/Resources/Yarn/PeipeiNew2/PeipeiNew2.yarn b/Assets/Resources/Yarn/PeipeiNew2/PeipeiNew2.yarn index 86431c4b6..79409aa76 100644 --- a/Assets/Resources/Yarn/PeipeiNew2/PeipeiNew2.yarn +++ b/Assets/Resources/Yarn/PeipeiNew2/PeipeiNew2.yarn @@ -5,7 +5,8 @@ position: 240,-2240 --- 新闻:balabalabala <> -<> +//<> +<> === title: VarsInit tags: @@ -102,63 +103,50 @@ me: 那我们做一个绘图测试吧 title: 诊断初始化 tags: colorID: 3 -position: 240,-1440 +position: 248,-1347 --- <> <> -<> -<> +<> +//<> +//<> <> <> //TODO-一进来就报警 -<> - me: 果然,佩佩看起来很热…… - me: 这会和UF的问题有关系吗? -<> - me: 佩佩看起来好热…这有点不太对劲。 - me: 无论如何,先检查一下UF模块吧。 -<> +// <> +// me: 果然,佩佩看起来很热…… +// me: 这会和UF的问题有关系吗? +// <> + // me: 佩佩看起来好热…这有点不太对劲。 + //me: 无论如何,先检查一下UF模块吧。 +// <> <> === title: AddAllClueToFavorites tags: colorID: 6 -position: -560,-1440 +position: -1033,-1812 --- <> <> <> -<> -<> -<> -<> + === title: 主维修界面 tags: colorID: 3 -position: 240,-280 +position: 217,-257 --- -<> -<> +<> <> -<> -// <> -// <> -// <> - - -<> - <> - <> +<> + <> + <> + <> <> - // 检查主目标是否完成并提供反馈 - <> - me: 似乎该检查的都检查了,应该去看下诊疗单了 - <> -//调查阶段的发热报警 <> //允许拆开UF @@ -168,9 +156,19 @@ position: 240,-280 <> //拆除UF前尝试降温 + <> + <> + <> <> <> + // me: 温度应该降下来了 + // 【检查确认】 + // me:让佩佩去躺着休息下吧...她应该累坏了 + // me:现在我该好好想想这一切是怎么回事了 + // <> + // <> + //拆除UF <> @@ -191,8 +189,9 @@ position: 240,-280 title: ClueBoard tags: colorID: 1 -position: -160,-640 +position: -164,-619 --- +<> //待编辑 //在得到神秘进程这一步之后被打断,同样跳到结论 一通分析,最后停在了“神秘进程”是什么这个疑问上 @@ -201,7 +200,7 @@ position: -160,-640 title: 结论1 tags: colorID: 8 -position: -161,-441 +position: -166,-403 --- //现在关于切换场景的数据保存还没有完成,建议先不切场景 me: 怎么办?那个“神秘进程 ”似乎依然存在。 @@ -229,6 +228,7 @@ me: 而且,如果你能够停止想象,发热也就可以被止住。 me: 尽管这不是长久之计…但至少暂时是这样。 【引导佩佩放松,停止想象】 me: 好…让我们去视觉查看一下吧。 +<> <> //这里应该直接丢进视觉 <> @@ -236,7 +236,7 @@ me: 好…让我们去视觉查看一下吧。 title: 流程结束 tags: colorID: 8 -position: 200,1280 +position: 227,1260 --- <> 【佩佩感谢医生,并且准备出去转一转】 @@ -252,7 +252,7 @@ position: 200,1280 title: IntoEyeView tags: colorID: 6 -position: 1240,-1640 +position: 2975,-1310 --- <> <> @@ -279,13 +279,13 @@ position: 1240,-1640 //TODO2-停止想象的初始化 <> <> - <> + <> <> - <> + <> <> - <> + <> <> - <> + <> <> <> //感觉这里结束再发热一次比较好 @@ -298,83 +298,87 @@ position: 1240,-1640 title: Eye_sky tags: colorID: 8 -position: 1440,-1240 +position: 3175,-973 --- -<> +<> <> +<> +<> <> === title: Eye_computer tags: colorID: 8 -position: 2040,-1240 +position: 3767,-980 --- me:这个依然没有生成颜色…和上次一样 <> === -title: Eye_apple +title: Eye_poster tags: colorID: 8 -position: 1840,-1240 +position: 3571,-979 --- <> <> 【佩佩迷迷糊糊地进行联想】 peipei: 嘶…好痛 -日志:未知进程,正在从记忆非法写入,打印记忆卡... -<> +<> +<> <> <> <> +<> +<> <> === title: Eye_plant tags: colorID: 8 -position: 1640,-1240 +position: 3375,-973 --- <> <> 【佩佩迷迷糊糊地进行联想】 peipei: 嘶…又痛起来了…… -日志:未知进程,正在从记忆非法写入,打印记忆卡... -<> +<> +<> <> <> <> +<> +<> <> === title: EyeCheckEnd tags: colorID: 8 -position: 1240,-840 +position: 2966,-544 --- +//<> <> - <> + //<> <> - <> me:这里似乎没什么新的症状可收集了 - <> - <> + //<> + //<> <> - <> <> 【佩佩说她很痛】 <> 【佩佩说她很痛】 <> - <> + //<> <> - <> me:似乎有足够的信息了,我们离开这里吧 <> <> <> //发一次热 - <> + //<> <> <> @@ -382,59 +386,63 @@ position: 1240,-840 me: 佩佩? me: 我不该让她这么做的…… <> + <> + <> <> <> === -title: OnUFViewDeepIn -tags: -colorID: 3 -position: -800,-920 ---- -//最新的TODO-这里都废弃了 -<> - <> - <> - me: 好烫…看来就是它在发热。必须尽快解决发热的原因。 - me: 可惜这个模块外放的权限实在太少了… - me: 我真想拆开来看看……说不定三两下就解决了。 - me: 佩佩,我们再进行一次外部测试吧。 - me:生成UF图 -//TODO替换图片 - <> - <> - <> - me:生成好了 - <> - //发一次热 - me: 这个错误是新的…和上次完全不一样了。 - <> - me: 症状已经记录了,不用再来一次让它发热了。 - <> -<> -//TODO接入拆除功能 -封条: 警告:UnstableFusion属于公司财产,严禁个人拆卸、调试! -me: 好吧…我想现在你没有任何意义了。 -->揭除封条,拆开UF外壳 - 【调查UF内部,寻找发热来源】 - ->调查晶圆槽位 - me: 原来你的色觉晶圆在这儿,被放到了UF模块里! - peipei: 什么?……我不知道,他们就让我签了一个协议。 - ->调查插孔 - me: 看起来数据都汇入了这个自我学习模块…… - 【表现学习过程】 - me: ...... - me: 佩佩,我做不到..... - me: UF模块中这个绘图过程……无法被停止。 - me: 它会一直学习,只要你还活着,它还在你的身体里,就不会停下 - peipei: 呕…真的不行了,医生……停下。 - <> -<>>> - ->拆除UF - 【UF被拆除,佩佩提议把色觉晶圆装回去】 - <> -<> -<> -=== +// title: OnUFViewDeepIn +// tags: +// colorID: 3 +// position: -544,-929 +// --- +// //<> +// //最新的TODO-这里都废弃了 + +// // <> +// // <> +// // <> +// // me: 好烫…看来就是它在发热。必须尽快解决发热的原因。 +// // me: 可惜这个模块外放的权限实在太少了… +// // me: 我真想拆开来看看……说不定三两下就解决了。 +// // me: 佩佩,我们再进行一次外部测试吧。 +// // me:生成UF图 +// // //TODO替换图片 +// // <> +// // <> +// // <> +// // me:生成好了 +// // <> +// // //发一次热 +// // me: 这个错误是新的…和上次完全不一样了。 +// // <> +// // me: 症状已经记录了,不用再来一次让它发热了。 +// // <> +// // <> +// // //TODO接入拆除功能 +// // 封条: 警告:UnstableFusion属于公司财产,严禁个人拆卸、调试! +// // me: 好吧…我想现在你没有任何意义了。 +// // ->揭除封条,拆开UF外壳 +// // 【调查UF内部,寻找发热来源】 +// // ->调查晶圆槽位 +// // me: 原来你的色觉晶圆在这儿,被放到了UF模块里! +// // peipei: 什么?……我不知道,他们就让我签了一个协议。 +// // ->调查插孔 +// // me: 看起来数据都汇入了这个自我学习模块…… +// // 【表现学习过程】 +// // me: ...... +// // me: 佩佩,我做不到..... +// // me: UF模块中这个绘图过程……无法被停止。 +// // me: 它会一直学习,只要你还活着,它还在你的身体里,就不会停下 +// // peipei: 呕…真的不行了,医生……停下。 +// // <> +// // <>>> +// // ->拆除UF +// // 【UF被拆除,佩佩提议把色觉晶圆装回去】 +// // <> +// // <> +// // <> +// === title: EmoViewDialogue tags: 待编辑 colorID: 8 @@ -482,7 +490,7 @@ colorID: 8 position: 0,-2840 --- //待编辑 -总体表现:对工作的焦虑、虚弱的身体状态 +position: 0,-2840状态 === title: EyeViewDialogue tags: 待编辑 @@ -492,48 +500,110 @@ position: 480,-2840 //待编辑 佩佩很害怕,她意识到了原来的颜色再也回不来了 === + +// title: SocketUfView +// tags: 待编辑 +// colorID: 8 +// position: -1045,-3029 +// --- +// <> +// <> +// me:好烫,我得给他降温 +// <> +// <> +// <> +// === +title: PlugInsert +tags: 待编辑 +colorID: 8 +position: 1018,-1538 +--- +<> + <> + <> + <> + <> + // <> + // me:嗯?模块温度居然这么高么? + // me:看看其他模块怎么样 + // <> + // me:不是单个模块在发热,而是整个主板都受到影响了 + // me:我需要找到发热源来降温 + + // <> + // <> + // <> + // <> + // <> + <> +<> +=== +title: EnterRepairMode +tags: 待编辑 +colorID: 8 +position: -496,-1391 +--- +<> + me: 嗯?这里有警告?不让拆? + me: 可是现在确实是UF在发热... + me: 但是也有可能是外部导致的?怎么办比较好? + ->现在就直接拆开盖子 + me:如果再拖不知道会发生什么,先拆开搞清楚 + <> + ->先检查检查外部再说 + me: 没有确定之前,先不轻举妄动比较好 + <> +//<> +<> + +=== +title: FinishedReapir +tags: 待编辑 +colorID: 8 +position: -496,-1187 +--- +<> + <> + <> +<> + <> + <> + <> + +<> + + +//<> +=== title: 第一次降温 tags: colorID: 8 -position: 840,-1240 +position: 1375,-1197 --- -> 【给佩佩降温】 + <> me: 好的…温度降下来了。 peipei: 头痛感觉好多了 me: 但是这只是暂时的…如果不尽快排除发热的根本原因。 【佩佩询问温度升高的的危险性,医生解释】 me: 我需要搞明白…为什么UF会这么热? +me: 我看看能不能打开它的盖子 +me: 让我把螺丝刀找出来 +<> + +//me: UF直接没法检查,应该抓紧时间做个全身检查! <> -<> +<> <> <> === title: 第二次降温 tags: colorID: 8 -position: 840,-1040 +position: 1369,-927 --- -> 【给佩佩降温】 -me: 好的…温度降下来了。 -me: 但这比我以为的还要凶险… -peipei: 头不痛了,但是感觉很晕 -me: 这绝对不是简单的发热,你正在经历一场排异风暴。 -【解释这种情况,来势汹汹,时间不多】 -me: 很难想象如果你晚一些来这里会发生什么事情。 -me: 还是解决之后再详细和你说吧…现在必须尽快定位病因。 -<> -<> -<> - <> -=== -title: 第三次降温 -tags: -colorID: 8 -position: 840,-840 ---- -//TODO-玩家有可能会跳过第二次发热,如果那样,第二次和第三次降温结束的对话需要做一些融合 -//TODO-最理想的情况:玩家找完视觉会被允许继续插线找线索,如果这么做就在插了一些之后再报第三次,如果直接拆UF就得满足上一条TODO的结论 --> 【给佩佩降温】 + <> me: 呼,总算…… peipei: 头不痛了,但是已经很迷糊了 me: 这太勉强了…照这个势头下去…… @@ -543,25 +613,72 @@ me: 佩佩恐怕撑不过下一次发热,时间不多了。 me: 现在唯一的线索的只有一个看起来是给UF用的打孔带… me: 而且UF正是发热的源头…但我并不被允许拆开UF。 me: …… -me: 我也可以继续找找线索…也许还有别的东西被我遗漏了。 -<> -<> +me: 我也可以继续找找线索… ->拆开UF 管不了那么多了…来吧。 - <> - <> + <> + //<> + //<> ->继续寻找线索 //TODO-理论上这里会回到主维修界面,自由活动一会再死,但先这么写了 //TODO-似乎更好的处理是说完之后就把玩家丢回主界面,玩家可以自己找出螺丝刀拆UF,也可以在外面拖时间 //接着上面的TODO,理论上如果你省了一次发热,可以在这里赚回一条命,然后强提示进拆开UF - 【你没有找到更多的线索,佩佩紧接着又发生了发热,而你的工具无法有效降温,这导致佩佩停止了呼吸,游戏结束】 + <> + 【占位结局:你找了很久,没有找到更多的线索,佩佩紧接着又发生了发热,而你的工具无法有效降温,这导致佩佩停止了呼吸,你被追责,游戏结束】 ->返回上一个存档点 - <> + <> + <> + +// me: 好的…温度降下来了。 +// me: 但这比我以为的还要凶险… +// peipei: 头不痛了,但是感觉很晕 +// me: 这绝对不是简单的发热,你正在经历一场排异风暴。 +// 【解释这种情况,来势汹汹,时间不多】 +// me: 很难想象如果你晚一些来这里会发生什么事情。 +// me: 还是解决之后再详细和你说吧…现在必须尽快定位病因。 +// <> +// <> +// <> +// <> +=== +title: 第三次降温 +tags: +colorID: 8 +position: 1669,-810 +--- +暂时废弃,降温减少一次,现在第四次改为第三次 +//TODO-玩家有可能会跳过第二次发热,如果那样,第二次和第三次降温结束的对话需要做一些融合 +//TODO-最理想的情况:玩家找完视觉会被允许继续插线找线索,如果这么做就在插了一些之后再报第三次,如果直接拆UF就得满足上一条TODO的结论 +// -> 【给佩佩降温】 +// <> +// me: 呼,总算…… +// peipei: 头不痛了,但是已经很迷糊了 +// me: 这太勉强了…照这个势头下去…… +// me: 下一次温度上来可能就压不下去了。 +// me: 佩佩恐怕撑不过下一次发热,时间不多了。 +// <> +// me: 现在唯一的线索的只有一个看起来是给UF用的打孔带… +// me: 而且UF正是发热的源头…但我并不被允许拆开UF。 +// me: …… +// me: 我也可以继续找找线索…也许还有别的东西被我遗漏了。 +// <> +// <> +// ->拆开UF +// 管不了那么多了…来吧。 +// <> +// <> +// ->继续寻找线索 +// //TODO-理论上这里会回到主维修界面,自由活动一会再死,但先这么写了 +// //TODO-似乎更好的处理是说完之后就把玩家丢回主界面,玩家可以自己找出螺丝刀拆UF,也可以在外面拖时间 +// //接着上面的TODO,理论上如果你省了一次发热,可以在这里赚回一条命,然后强提示进拆开UF +// 【你没有找到更多的线索,佩佩紧接着又发生了发热,而你的工具无法有效降温,这导致佩佩停止了呼吸,游戏结束】 +// ->返回上一个存档点 +// <> === title: 发热降温 tags: colorID: 6 -position: 840,-1440 +position: 1374,-1436 --- //TODO-等发热检测和降温拆开之后,这里改为仅用作降温完毕的对话 <> @@ -569,23 +686,26 @@ position: 840,-1440 <> <> <> - <> + //<> + <> <> <> === title: FirstDialogue tags: colorID: 8 -position: 1240,-1240 +position: 2961,-972 --- me: 看起来还是黑白的啊…佩佩,你说的奇怪的颜色,是怎么回事? peipei: 演示给你看 <> peipei: 嘶…好痛 -<> +<> <> -日志: 未知进程,正在从记忆非法写入,打印记忆卡... -<> +<> +<> +//<> +me:什么?有从UF来的进程? me: 这是怎么回事?这和上次看到的颜色不一样了。 me: 但无论如何,能产生颜色数据的线路已经截断了啊…… me: 我需要再做几次检查,收集完整的症状。 @@ -595,7 +715,7 @@ me: 我需要再做几次检查,收集完整的症状。 title: Eye_sky_2 tags: colorID: 8 -position: 2240,-1240 +position: 3981,-974 --- <> //颜色不出现 @@ -695,7 +815,7 @@ position: 2240,-1240 title: Eye_plant_2 tags: colorID: 8 -position: 2440,-1240 +position: 4176,-973 --- <> //颜色不出现 @@ -792,10 +912,10 @@ position: 2440,-1240 <> <> === -title: Eye_apple_2 +title: Eye_poster2 tags: colorID: 8 -position: 2640,-1240 +position: 4375,-973 --- <> //颜色不出现 @@ -895,7 +1015,7 @@ position: 2640,-1240 title: Eye_computer_2 tags: colorID: 8 -position: 2840,-1240 +position: 4571,-974 --- //TODO-最后的检查里她也能看这个了 <> @@ -915,7 +1035,7 @@ me: 我不应该这么允许她这么做的…赶紧降温! title: RecoverColor tags: colorID: 8 -position: 3040,-1240 +position: 4788,-973 --- ->校准颜色 <> @@ -949,7 +1069,7 @@ me: 外面会有更多的色彩可以让你“呼吸” title: 绘图测试 tags: colorID: 8 -position: 240,-1640 +position: 249,-1619 --- 【生成图片】 【图片看起来有问题】 @@ -964,7 +1084,7 @@ peipei: 忽然感觉头晕 <> ->开始治疗 ->直接开始治疗 -<> +<> === title: EGCViewDialogue tags: @@ -997,7 +1117,7 @@ position: 920,-3040 title: 过热时插线的对话_1 tags: colorID: 8 -position: 640,-1240 +position: 1015,-1272 --- <> <> @@ -1018,6 +1138,7 @@ position: 640,-1240 //TODO-理论上这里只有插不同的模块才会弹出对话,但不知道怎么做——应该取决于降温工具怎么呼出 //TODO-现在是把检测温度和降温放在一起做的,之后要拆开 me: 果然,其他模块也无法正常工作…… + me: 应该是引起了主板的过热 me: 看来只有把温度降下来才能继续检查。 ->开始降温 <> @@ -1025,93 +1146,99 @@ position: 640,-1240 <> <> === -title: 过热时插线的对话_2 -tags: -colorID: 8 -position: 640,-1040 ---- -<> - <> - me: 模块无法正常工作? - me: 又开始发热了吗?怎么会这么快…… - ->开始降温 - <> - ->继续检查 - <> -<> -//TODO-理论上这里只有插不同的模块才会弹出对话,但不知道怎么做——应该取决于降温工具怎么呼出 -//////感觉工具让玩家自己取会好一些? - me: 只有把温度降下来才能继续检查。 - ->开始降温 - <> - ->继续检查 - <> -<> -=== -title: 过热时插线的对话_3 -tags: -colorID: 8 -position: 640,-840 ---- -<> - <> - me: 不好,又来了! - me: 这发热没完没了了…… - ->开始降温 - <> - ->继续检查 - <> -<> -//TODO-理论上这里只有插不同的模块才会弹出对话,但不知道怎么做——应该取决于降温工具怎么呼出 -//////感觉工具让玩家自己取会好一些? - me: 必须尽快把佩佩的温度降下来。 - ->开始降温 - <> - ->继续检查 - <> -<> -=== +// title: 过热时插线的对话_2 +// tags: +// colorID: 8 +// position: 1043,-1009 +// --- +// <> +// <> +// me: 模块无法正常工作? +// me: 又开始发热了吗?怎么会这么快…… +// ->开始降温 +// <> +// ->继续检查 +// <> +// <> +// //TODO-理论上这里只有插不同的模块才会弹出对话,但不知道怎么做——应该取决于降温工具怎么呼出 +// //////感觉工具让玩家自己取会好一些? +// me: 只有把温度降下来才能继续检查。 +// ->开始降温 +// <> +// ->继续检查 +// <> +// <> +// === +// title: 过热时插线的对话_3 +// tags: +// colorID: 8 +// position: 1036,-800 +// --- +// <> +// <> +// me: 不好,又来了! +// me: 这发热没完没了了…… +// ->开始降温 +// <> +// ->继续检查 +// <> +// <> +// //TODO-理论上这里只有插不同的模块才会弹出对话,但不知道怎么做——应该取决于降温工具怎么呼出 +// //////感觉工具让玩家自己取会好一些? +// me: 必须尽快把佩佩的温度降下来。 +// ->开始降温 +// <> +// ->继续检查 +// <> +// <> +// === title: 拆开UF对话 tags: colorID: 8 -position: -160,-1240 +position: -163,-1303 --- +暂时废弃 //TODO-拆开UF怎么进入?理论上它是一个完全不同的深入,不知道怎么引入——似乎可以用ViewDialogue? -【靠近UF,看到上面的封条】 -【封条:禁止私自拆开,一旦检测到拆开将自动通知行政部门】 -me: 管不了那么多了…报警就报警吧。 -me: 佩佩现在的情况足够特殊了…我相信我能解释清楚的。 -->移除UF外壳螺丝 -->移除UF固定螺丝 - me: 现在就直接拆除它太草率了…至少先打开看看吧。 - ->移除UF外壳螺丝 -<> +////Chun:由于交互改变,暂时废弃,先参照EnterReapirMode +// 【靠近UF,看到上面的封条】 +// 【封条:禁止私自拆开,一旦检测到拆开将自动通知行政部门】 +// me: 管不了那么多了…报警就报警吧。 +// me: 佩佩现在的情况足够特殊了…我相信我能解释清楚的。 +// ->移除UF外壳螺丝 +// ->移除UF固定螺丝 +// me: 现在就直接拆除它太草率了…至少先打开看看吧。 +// ->移除UF外壳螺丝 +// <> === title: 检测UF外壳螺丝移除 tags: colorID: 8 -position: -160,-1040 +position: -160,-1038 --- //TODO-需要一个命名规范? +<> 【发现了里面的色觉晶圆,很惊讶】 -me: 好了…赶紧看看这里有什么值得注意的东西吧。 -->把打孔带/二维码喂给读卡槽 - me: 果然这个带子是可以用的! - me: 所以这里到底发生了什么?为什么视觉会从UF索引素材呢…… - <> +// me: 好了…赶紧看看这里有什么值得注意的东西吧。 +// ->把打孔带/二维码喂给读卡槽 +// me: 果然这个带子是可以用的! +// me: 所以这里到底发生了什么?为什么视觉会从UF索引素材呢…… +me: 这里有插孔了,可以去检查看看了 +<> +//<> === -title: UF学习画面 +title: UF进程播放完毕 tags: colorID: 8 -position: -160,-840 +position: -163,-840 --- -【表现学习过程】 +//【表现学习过程】 me: …… me: 这是…… me: UF从记忆获取了素材,处理之后再传输给视觉! me: 这是为什么?这太诡异了…… peipei: 呕…真的不行了,医生……停下。 me: 我想我们也看够了。 +<> me: 时间不多了,我必须赶紧分析得出结论…然后迅速执行手术。 me: 希望还来得及…… <> @@ -1119,40 +1246,39 @@ me: 希望还来得及…… title: 第四次降温 tags: colorID: 8 -position: 840,-640 +position: 1373,-711 --- -> 【给佩佩降温】 //温度降不下来但也需要一个判定条件 me: 不…温度怎么也降不下来! 【稍加思索,没有时间了,现在唯一想到的办法就是拆除UF】 me: 只有这样了…先把热源给移除了。 -->移除UF固定螺丝 +<> //TODO-改成程序控制允许拆外壳螺丝——理论上直接弹出工具了应该——感觉似乎不弹出,让玩家自己取会更好? <> - - <> -=== -title: 过热时插线的对话_4 -tags: -colorID: 8 -position: 640,-640 ---- -<> - <> - me: 又开始了… - me: 佩佩,你听得到我吗? - peipei: …… -<> - me: 必须赶紧降温! - ->开始降温 - <> - ->继续检查 - <> + //<> === +// title: 过热时插线的对话_4 +// tags: +// colorID: 8 +// position: 1016,-669 +// --- +// <> +// <> +// me: 又开始了… +// me: 佩佩,你听得到我吗? +// peipei: …… +// <> +// me: 必须赶紧降温! +// ->开始降温 +// <> +// ->继续检查 +// <> +// === title: 检查UF固定螺丝移除 tags: colorID: 8 -position: -160,-40 +position: -157,-25 --- 【移除了所有UF的螺丝,取下UF,发热停止了】 <> @@ -1174,6 +1300,7 @@ tags: colorID: 1 position: -160,160 --- +<> 【得出两种处理方案:安装晶圆和记忆色彩初始化】 <> === @@ -1183,6 +1310,7 @@ colorID: 8 position: -160,360 --- <> +<> me: 好吧,现在有两种选择…… me: 一种可能性,是安装色觉晶圆。 me: 而正好…我们刚才从UF获得了一个。 @@ -1324,18 +1452,19 @@ tags: colorID: 8 position: -360,560 --- -->执行记忆初始化 -<> -<> -<> -me: 对不起,佩佩… -<> -<> -<> -//屏幕: 正在执行记忆色彩初始化……请稍候 -//屏幕: 警告:只读的记忆,请进入记忆模块手动处理。 -me: 最近访问的记忆? -->进入记忆深度 +me: 去记忆模块执行色彩初始化吧 +// ->执行记忆初始化 +// <> +// <> +// <> +// me: 对不起,佩佩… +// <> +// <> +// <> +// //屏幕: 正在执行记忆色彩初始化……请稍候 +// //屏幕: 警告:只读的记忆,请进入记忆模块手动处理。 +// me: 最近访问的记忆? +->色彩初始化 <> === title: 记忆初始化深度 @@ -1343,6 +1472,12 @@ tags: colorID: 1 position: -360,760 --- +// <> +// <> +// <> +// <> +// <> +// <> <> me: 已经完成了…… me: 没有什么再继续留恋的了。 @@ -1366,7 +1501,7 @@ position: -360,760 me: 你是因为生了什么病而被困在那个病房里呢? me: 我可能永远也不会知道了…… ->手动进行色彩初始化 - <> + <> me: 现在这个病房将不再困扰你了……你自由了。 <> <> diff --git a/Assets/Scenes/Persistence.unity b/Assets/Scenes/Persistence.unity index 2e163ab98..5bdc24d1a 100644 --- a/Assets/Scenes/Persistence.unity +++ b/Assets/Scenes/Persistence.unity @@ -2259,7 +2259,7 @@ MonoBehaviour: runMode: 0 firstTalkSO: {fileID: 11400000, guid: 10601ce26230723479d875a630f15732, type: 2} clinicScene: ClinicScene - testYarnProject: PeipeiNew + testYarnProject: PeipeiNew2 --- !u!4 &719228339 Transform: m_ObjectHideFlags: 0 @@ -2283,30 +2283,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 639620682} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 121bb6da-9055-40a5-ae33-05be2ec09f54 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 3c0ead6f-afd4-41bf-968d-0d36f758e232 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 6b671834-73b4-403d-94d3-0726554589ee - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -2435,6 +2411,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 121bb6da-9055-40a5-ae33-05be2ec09f54 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 3c0ead6f-afd4-41bf-968d-0d36f758e232 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 6b671834-73b4-403d-94d3-0726554589ee + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -4908,30 +4908,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 639620682} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -5092,6 +5068,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -7610,30 +7610,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 639620682} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 3336344b-f73d-481c-bd5a-548f8a4bead4 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: ddd9082f-516c-4e2f-bd55-78c29857f972 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -7790,6 +7766,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 65545b51-845c-4df4-8f5c-90c1f04cbe23 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 3336344b-f73d-481c-bd5a-548f8a4bead4 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: ddd9082f-516c-4e2f-bd55-78c29857f972 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -8314,30 +8314,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 639620682} m_Modifications: - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 67e03198-f3fa-40e3-88ca-042210787447 - objectReference: {fileID: 0} - - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 - objectReference: {fileID: 0} - - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: _sID - value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 - objectReference: {fileID: 0} - - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} - propertyPath: graphManager - value: - objectReference: {fileID: 380148808} - target: {fileID: 23699057384935269, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -8514,6 +8490,30 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 67e03198-f3fa-40e3-88ca-042210787447 + objectReference: {fileID: 0} + - target: {fileID: 973112152669269883, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 39cf0bb1-4276-40ca-8336-c91048fb4ba1 + objectReference: {fileID: 0} + - target: {fileID: 1496828829037596491, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: _sID + value: 27840e3a-f0c8-4ee8-a048-4e57774c3376 + objectReference: {fileID: 0} + - target: {fileID: 8404161828147755465, guid: 5a170c0b6c933c540a86be691fa6745c, type: 3} + propertyPath: graphManager + value: + objectReference: {fileID: 380148808} m_RemovedComponents: [] m_RemovedGameObjects: - {fileID: 7898933851103092944, guid: a1dbef2a0a50ecf49a39eae2d3e486b2, type: 3} diff --git a/Assets/Scripts/Dialog System/DialogController.cs b/Assets/Scripts/Dialog System/DialogController.cs index f5d60bc79..7ccdb11fb 100644 --- a/Assets/Scripts/Dialog System/DialogController.cs +++ b/Assets/Scripts/Dialog System/DialogController.cs @@ -121,6 +121,7 @@ namespace AibisDream if(CheckIfNodeExistInCurrentYarnProject(nodeName)) { dialogueRunner.StartDialogue(nodeName); + } } diff --git a/Assets/Scripts/FixSystem/Cable/Plug.cs b/Assets/Scripts/FixSystem/Cable/Plug.cs index cd3fab052..3e6f4bd7b 100644 --- a/Assets/Scripts/FixSystem/Cable/Plug.cs +++ b/Assets/Scripts/FixSystem/Cable/Plug.cs @@ -235,6 +235,16 @@ public class Plug : MonoBehaviour, IDragHandler, IPointerDownHandler, IPointerUp // }); // } } +public void ReturnToInit() +{ + transform.DOMove(startPosition, 0.1f).OnComplete(() => + { + //transform.rotation = startRotation; + initialSocket.InsertPlug(this); + OnPlugInserted?.Invoke(this); // 触发插入事件 + plugSprite.enabled =false; // Make the plug sprite disappear when it is inserted into the initial socket. + }); +} void OnDrawGizmosSelected() diff --git a/Assets/Scripts/FixSystem/Scope/OscilloscopeController.cs b/Assets/Scripts/FixSystem/Scope/OscilloscopeController.cs index 335a5abb3..6b2f18fa1 100644 --- a/Assets/Scripts/FixSystem/Scope/OscilloscopeController.cs +++ b/Assets/Scripts/FixSystem/Scope/OscilloscopeController.cs @@ -64,6 +64,8 @@ public class OscilloscopeController : MonoBehaviour } private void HandlePlugInserted(Plug plug) { + DialogController.Instance.SetVariable("$currentSocket",plug.currentSocket.name); + DialogController.Instance.StartDialogNode("PlugInsert"); // 这里可以处理插入后的波形显示逻辑 Debug.Log("Plug inserted into the socket, starting waveform display."); } @@ -97,6 +99,7 @@ public class OscilloscopeController : MonoBehaviour if(currentSocket.WaitYarnCommand) { + DialogController.Instance.StartDialogNode(yarnString); // DialogController.Instance.SetVariable("$ViewToDeepIn",trimmedString); // DialogController.Instance.StartDialogNode("DeepInView"); } diff --git a/Assets/Scripts/FixSystem/Tools/Module.cs b/Assets/Scripts/FixSystem/Tools/Module.cs index 7cfe9032a..1d40b6c54 100644 --- a/Assets/Scripts/FixSystem/Tools/Module.cs +++ b/Assets/Scripts/FixSystem/Tools/Module.cs @@ -3,6 +3,7 @@ using UnityEngine.EventSystems; using DG.Tweening; using System.Drawing; // 需要引入 DOTween 命名空间 using UnityEngine.UI; +using AibisDream; public class Module : MonoBehaviour, IPointerClickHandler { @@ -16,65 +17,92 @@ public class Module : MonoBehaviour, IPointerClickHandler public GameObject screwsContainer; // 螺丝的父对象 public RectTransform targetArea; // 拖拽的目标区域,用于判定维修完成 - - private bool isRepairMode = false; + [HideInInspector] + public bool isRepairMode = false; private bool canDrag = false; private Vector3 initialPosition; + private Plug plug; public Socket socketToEnable; private void Start() { + plug=FindObjectOfType(); initialPosition = transform.position; originalCanvasPosition = faceCanvas.position; //socketToEnable.raycastTarget=false; socketToEnable.IsAvailable=false; - EnableScrewsInteraction(false); + foreach (Transform screw in screwsContainer.transform) + { + screw.GetComponent().enabled = false; + } } - public void StartRepairIfToolIsScrewdriver(Tool tool) + // public void StartRepairIfToolIsScrewdriver(Tool tool) + // { + // EnterRepairMode(); + // } + public void RemoveAllPlugsFromSockets() { - EnterRepairMode(); + Socket[] sockets = FindObjectsOfType(); // 找到场景中的所有Socket组件 + foreach (Socket socket in sockets) + { + socket.RemovePlug(plug); // 移除Plug + } + plug.ReturnToInit(); + plug.enabled=false; } - public void EnterRepairMode() - { - isRepairMode = true; + // public void EnterRepairMode() + // { - // 使用 DOTween 对 Canvas 的位置和缩放进行平滑过渡 - faceCanvas.DOMove(repairCanvasPosition, animationDuration) - .SetEase(Ease.OutQuad) // 移动面板 - .OnComplete(() => EnableScrewsInteraction(true)); // 动画完成后才启用交互 + // DialogController.Instance.StartDialogNode("EnterRepairMode"); + // isRepairMode = true; + // RemoveAllPlugsFromSockets(); + // // 使用 DOTween 对 Canvas 的位置和缩放进行平滑过渡 + // faceCanvas.DOMove(repairCanvasPosition, animationDuration) + // .SetEase(Ease.OutQuad) // 移动面板 + // .OnComplete(() => EnableScrewsInteraction(true)); // 动画完成后才启用交互 - faceCanvas.DOScale(repairCanvasScale, animationDuration) - .SetEase(Ease.OutQuad); // 缩放面板 - } + // faceCanvas.DOScale(repairCanvasScale, animationDuration) + // .SetEase(Ease.OutQuad); // 缩放面板 + // } - public void ExitRepairMode() - { - isRepairMode = false; + // public void ExitRepairMode() + // { + // isRepairMode = false; - // 使用 DOTween 对 Canvas 的位置和缩放进行平滑过渡 - faceCanvas.DOMove(originalCanvasPosition, animationDuration) - .SetEase(Ease.InQuad) - .OnComplete(() => EnableScrewsInteraction(false)); // 动画完成后禁用交互 + // // 使用 DOTween 对 Canvas 的位置和缩放进行平滑过渡 + // faceCanvas.DOMove(originalCanvasPosition, animationDuration) + // .SetEase(Ease.InQuad) + // .OnComplete(() => EnableScrewsInteraction(false)); // 动画完成后禁用交互 - faceCanvas.DOScale(1f, animationDuration) - .SetEase(Ease.InQuad); // 恢复面板缩放 - ResetModulePosition(); - ToolManager.Instance.ShowToolBoxAfterTask(); - //socketToEnable.raycastTarget=true; - socketToEnable.IsAvailable=true; - } + // faceCanvas.DOScale(1f, animationDuration) + // .SetEase(Ease.InQuad); // 恢复面板缩放 + // ResetModulePosition(); + // ToolManager.Instance.ShowToolBoxAfterTask(); + // //socketToEnable.raycastTarget=true; + // socketToEnable.IsAvailable=true; - private void EnableScrewsInteraction(bool isEnabled) + // foreach (Transform screw in screwsContainer.transform) + // { + // if(screw!=null) + // { + // screw.GetComponent().enabled = false; + // } + + // } + // } + + public void EnableScrewsInteraction(bool isEnabled) { foreach (Transform screw in screwsContainer.transform) { screw.GetComponent().enabled = isEnabled; } + plug.enabled=true; } private void ResetModulePosition() @@ -102,6 +130,14 @@ public class Module : MonoBehaviour, IPointerClickHandler if (allDropped) { + socketToEnable.IsAvailable=true; + foreach (Transform screw in screwsContainer.transform) + { + if(screw!=null) + { + screw.GetComponent().enabled = false; + } + } Destroy(gameObject); CompleteRepair(); } @@ -122,7 +158,8 @@ public class Module : MonoBehaviour, IPointerClickHandler private void CompleteRepair() { + DialogController.Instance.StartDialogNode("FinishedReapir"); Debug.Log("维修完成!"); - ExitRepairMode(); + //ExitRepairMode(); } } diff --git a/Assets/Scripts/FixSystem/Tools/ToolManager.cs b/Assets/Scripts/FixSystem/Tools/ToolManager.cs index 5fdafd497..741772bea 100644 --- a/Assets/Scripts/FixSystem/Tools/ToolManager.cs +++ b/Assets/Scripts/FixSystem/Tools/ToolManager.cs @@ -4,6 +4,7 @@ using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; using Yarn.Unity; +using AibisDream; public class ToolManager : MonoBehaviour { @@ -17,6 +18,13 @@ public class ToolManager : MonoBehaviour private bool isBoxShow = false; public bool HasTool => currentTool != null; // 判断玩家是否已获得工具 + private Module currentModule; + + public Transform faceCanvas; + + private Vector3 originalCanvasPosition; // 原始面板位置 + + private bool isInRepiarMode=false; private void Awake() { @@ -34,6 +42,8 @@ public class ToolManager : MonoBehaviour private void Start() { + originalCanvasPosition=faceCanvas.position; + currentModule=null; toolBox.SetActive(false); // 初始隐藏工具盒 toolPrefabDictionary = new Dictionary(); @@ -49,15 +59,45 @@ public class ToolManager : MonoBehaviour public void TryStartRepairMode(Module module) { // 如果当前工具是螺丝刀,调用Module的EnterRepairMode方法 - if (currentTool is Screwdriver&&module.isallowedRepair) + if (currentTool is Screwdriver&&module.isallowedRepair&&isInRepiarMode==false) { - module.StartRepairIfToolIsScrewdriver(currentTool); + //module.StartRepairIfToolIsScrewdriver(currentTool); + currentModule=module; + EnterRepairMode(); } else { Debug.Log("no tool or not allowed"); } } + public void EnterRepairMode() + { + isInRepiarMode=true; + //isRepairMode = true; + currentModule.RemoveAllPlugsFromSockets(); + // 使用 DOTween 对 Canvas 的位置和缩放进行平滑过渡 + faceCanvas.DOMove(currentModule.repairCanvasPosition, 1) + .SetEase(Ease.OutQuad) // 移动面板 + .OnComplete(() => currentModule.EnableScrewsInteraction(true)); // 动画完成后才启用交互 + faceCanvas.DOScale(currentModule.repairCanvasScale, 1) + .SetEase(Ease.OutQuad) + .OnComplete(() => DialogController.Instance.StartDialogNode("EnterRepairMode")); // 缩放面板 + } + + [YarnCommand("ExitRepairMode")] + public void ExitRepairMode() + { + isInRepiarMode=false; + // 使用 DOTween 对 Canvas 的位置和缩放进行平滑过渡 + faceCanvas.DOMove(originalCanvasPosition, 1) + .SetEase(Ease.InQuad); + + faceCanvas.DOScale(1f, 1) + .SetEase(Ease.InQuad); // 恢复面板缩放 + ShowToolBoxAfterTask(); + currentModule=null; + } + [YarnCommand("ShowTool")] public void ShowTool(string toolName) @@ -117,6 +157,7 @@ public class ToolManager : MonoBehaviour // 移除工具的点击事 // 显示工具盒并添加归还工具的点击事件 + public void ShowToolBoxAfterTask() { toolBox.SetActive(true); diff --git a/Assets/Scripts/Mouse/MouseCursorManager.cs b/Assets/Scripts/Mouse/MouseCursorManager.cs index bdf7fac2b..0d550fd2d 100644 --- a/Assets/Scripts/Mouse/MouseCursorManager.cs +++ b/Assets/Scripts/Mouse/MouseCursorManager.cs @@ -103,10 +103,10 @@ public class MouseCursorManager : MonoBehaviour { SetCursor(handCursorSprite); } - else if (IsHoveringOverDialogueItem()) - { - SetCursor(searchCursorSprite, true); // 使用翻转光标 - } + // else if (IsHoveringOverDialogueItem()) + // { + // SetCursor(searchCursorSprite, true); // 使用翻转光标 + // } else { ResetCursor(); @@ -114,30 +114,36 @@ public class MouseCursorManager : MonoBehaviour } } - private bool IsHoveringOverDialogueItem() - { - if (EventSystem.current.IsPointerOverGameObject()) - { - PointerEventData pointerData = new PointerEventData(EventSystem.current) { position = Input.mousePosition }; - var results = new List(); - EventSystem.current.RaycastAll(pointerData, results); - foreach (var result in results) - { - if (result.gameObject.CompareTag("DialogueObject")) // 物体需添加 DialogueObject 标签 - { - if(result.gameObject.transform.GetChild(0).GetComponent().IsAvailable) - { - Debug.Log("Hover Dialogue"); - return true; - } + // private bool IsHoveringOverDialogueItem() + // { + // if (EventSystem.current.IsPointerOverGameObject()) + // { + // PointerEventData pointerData = new PointerEventData(EventSystem.current) { position = Input.mousePosition }; + // var results = new List(); + // EventSystem.current.RaycastAll(pointerData, results); + // foreach (var result in results) + // { + // if (result.gameObject.CompareTag("DialogueObject")) // 物体需添加 DialogueObject 标签 + // { + // if(result.gameObject.transform.GetChild(0)!=null) + // { + // if(result.gameObject.transform.GetChild(0).GetComponent().IsAvailable) + // { + // Debug.Log("Hover Dialogue"); + // return true; + + // } + + + // } - } + // } - } - } - return false; - } + // } + // } + // return false; + // } private bool IsHoveringOverDragItem() { @@ -175,40 +181,40 @@ public class MouseCursorManager : MonoBehaviour return; } - PointerEventData pointerData = new PointerEventData(EventSystem.current) { position = Input.mousePosition }; - var results = new List(); - EventSystem.current.RaycastAll(pointerData, results); + // PointerEventData pointerData = new PointerEventData(EventSystem.current) { position = Input.mousePosition }; + // var results = new List(); + // EventSystem.current.RaycastAll(pointerData, results); - foreach (var result in results) - { - Canvas hitCanvas = result.gameObject.GetComponentInParent(); + // foreach (var result in results) + // { + // Canvas hitCanvas = result.gameObject.GetComponentInParent(); - if (hitCanvas != null) - { - // If the Canvas's sortingOrder is higher than the reference sortingOrder, ignore it - if (hitCanvas.renderMode==RenderMode.ScreenSpaceOverlay) - { - Debug.Log("Raycast hit an object with a higher sortingOrder that should block the raycast"); - // You can add additional logic here to block interaction or trigger events - //return false; // Stop further raycasting if it should be blocked - } - else - { - if (result.gameObject.CompareTag("DialogueObject")) - { + // if (hitCanvas != null) + // { + // // If the Canvas's sortingOrder is higher than the reference sortingOrder, ignore it + // if (hitCanvas.renderMode==RenderMode.ScreenSpaceOverlay) + // { + // Debug.Log("Raycast hit an object with a higher sortingOrder that should block the raycast"); + // // You can add additional logic here to block interaction or trigger events + // //return false; // Stop further raycasting if it should be blocked + // } + // else + // { + // if (result.gameObject.CompareTag("DialogueObject")) + // { - if(result.gameObject.transform.GetChild(0).GetComponent().IsAvailable) - { - string dialogueNode =result.gameObject.name+"Dialogue"; // 假设物体名是对话节点 - DialogController.Instance.StartDialogNode(dialogueNode); - return; - } - } - } - } + // if(result.gameObject.transform.GetChild(0).GetComponent().IsAvailable) + // { + // string dialogueNode =result.gameObject.name+"Dialogue"; // 假设物体名是对话节点 + // DialogController.Instance.StartDialogNode(dialogueNode); + // return; + // } + // } + // } + // } - } + // } }