This commit is contained in:
2025-06-26 21:02:29 +08:00
parent 578387269a
commit 14089f66be
12 changed files with 3233 additions and 2817 deletions
File diff suppressed because it is too large Load Diff
@@ -474,6 +474,58 @@ MonoBehaviour:
m_Localized: "\u6C89\u9ED8"
m_Metadata:
m_Items: []
- m_Id: 4033947288895488
m_Localized: "hs: \u6211\u8FD9\u79CD\u6BCF\u6B21\u5E74\u5BA1\u90FD\u57AB\u5E95\u7684\u5458\u5DE5\uFF0C<waitfor=0.2><br>\u5BF9\u516C\u53F8\u6765\u8BF4\u5C31\u662F\u4E2A\u7D2F\u8D58\u3002"
m_Metadata:
m_Items: []
- m_Id: 4033947347615744
m_Localized: "me: \u53C8\u6765\u4E86\uFF01<waitfor=0.3>\u5728\u88AB\u9A82\u4E4B\u524D\u5148\u9A82\u81EA\u5DF1\u3002"
m_Metadata:
m_Items: []
- m_Id: 4033947347615745
m_Localized: "me: \u2026\u8FD9\u7B80\u76F4\u662F\u4F60\u7684\u673A\u751F\u4FE1\u6761\u3002"
m_Metadata:
m_Items: []
- m_Id: 4033947351810048
m_Localized: "hs: \u4ED6\u4E00\u8DD1\uFF0C<waitfor=0.2>\u8D1F\u8D23\u4ED6\u7684\u533B\u751F\u5C31\u60E8\u54AF\uFF0C<waitfor=0.2><br>\u76F4\u63A5\u88AB\u6253\u6210*\u95EE\u9898\u5206\u5B50*\u3002"
m_Metadata:
m_Items: []
- m_Id: 4033947351810049
m_Localized: "hs: \u4F60\u90A3\u4E2A\u65F6\u5019\uFF0C<waitfor=0.2>\u4E0D\u662F\u4E5F\u2026"
m_Metadata:
m_Items: []
- m_Id: 4033947351810050
m_Localized: "me: \u6211\u90A3\u65F6\u2026<waitfor=0.2><br>\u8BA4\u4E3A\u5B83\u7684\u75C5\u60C5\u8FD8\u4E0D\u7528\u56DE\u6536\u3002<waitfor=0.4><br>\u800C\u4E14\uFF0C<waitfor=0.2><br>\u89C4\u5219\u4E5F\u6CA1\u6709\u8BF4\u8FD9\u79CD\u60C5\u51B5\u4E0D\u80FD\u8BA9\u5B83\u79BB\u5F00\u3002"
m_Metadata:
m_Items: []
- m_Id: 4033947351810051
m_Localized: "hs: \u662F\u554A\u2026\u2026<waitfor=0.4>\u65F6\u95F4\u4E0D\u591A\u4E86\u3002"
m_Metadata:
m_Items: []
- m_Id: 4033947351810052
m_Localized: "\u5BF9\u4E0D\u8D77"
m_Metadata:
m_Items: []
- m_Id: 4033947351810053
m_Localized: "\u662F\u4F60\u641E\u9519\u4E86"
m_Metadata:
m_Items: []
- m_Id: 4033947351810054
m_Localized: "me: \u6211\u53EA\u662F\u7EA0\u6B63\u4E86\u4E00\u4E0B\uFF0C<waitfor=0.2><br>\u6211\u7684\u5230\u5C97\u65F6\u95F4\u5E94\u8BE5\u662F7:30\u3002"
m_Metadata:
m_Items: []
- m_Id: 4033947351810055
m_Localized: "yl: \u4EE5\u6211\u7684\u89C4\u77E9\u4E3A\u51C6\uFF0C<waitfor=0.4>\u660E\u767D\u4E86\u5417\uFF1F"
m_Metadata:
m_Items: []
- m_Id: 4033947351810056
m_Localized: "me: \u2026\u2026"
m_Metadata:
m_Items: []
- m_Id: 4033947351810057
m_Localized: "\u6C89\u9ED8"
m_Metadata:
m_Items: []
references:
version: 2
RefIds: []
File diff suppressed because it is too large Load Diff
@@ -27,7 +27,7 @@ PluginImporter:
- first:
Standalone: Win64
second:
enabled: 1
enabled: 0
settings: {}
userData:
assetBundleName:
@@ -42,11 +42,11 @@ hs: 一年总算忙到了头,<waitfor=0.2><br>谁想到年底还能丢个大
<<change_actor_state_async "turnback" "地铁火山">>
<<wait 0.2>>
hs: <shake>哎</shake>。<waitfor=0.2>还是怪我自己能力不行。 #line:06967db
hs: 我这种每次年审都垫底的员工,<waitfor=0.2><br>对公司来说就是个累赘。
hs: 我这种每次年审都垫底的员工,<waitfor=0.2><br>对公司来说就是个累赘。 #line:080663c
<<change_actor_state_async "turn" "地铁医生">>
me: 又来了!<waitfor=0.3>在被骂之前先骂自己。
me: 又来了!<waitfor=0.3>在被骂之前先骂自己。 #line:07a40a4
<<change_actor_state "turnback" "地铁医生">>
me: …这简直是你的机生信条。
me: …这简直是你的机生信条。 #line:0b26e25
<<hide_dialog>>
<<wait 1>>
//<<change_actor_state_async "turn" "地铁火山">>
@@ -70,14 +70,14 @@ hs: 啊…<waitfor=0.2><br>在想<b>那事儿</b>对吧? #line:0ccc161
me: 啥事儿? #line:07bcfec
hs: 还能是啥事儿?<waitfor=0.2>现在都传开了。<waitfor=0.2><br>那个逃跑的家伙! #line:0b4f7bf
hs: 记忆回收员型号,我没记错的话是。 #line:061510a
hs: 他一跑,<waitfor=0.2>负责他的医生就惨咯,<waitfor=0.2><br>直接被打成*问题分子*。
hs: 他一跑,<waitfor=0.2>负责他的医生就惨咯,<waitfor=0.2><br>直接被打成*问题分子*。 #line:0857adf
me: 这事儿跟我有啥关系? #line:0a55cc5
hs: 你那个时候,<waitfor=0.2>不是也…
hs: 你那个时候,<waitfor=0.2>不是也… #line:0942f29
//hs: 哟……<waitfor=0.5>你的那场<b>医疗事故</b>啊。<waitfor=0.2><br>忘了? #line:07a1655
//hs: 这次这个是ICU看管不严,<waitfor=0.2><br>你是在手术台上放走了……
me: …[[size]]不一样[[^size]]<waitfor=0.2>这和我那是两码事儿。 #line:00df00a
<<change_actor_state_async "turnback" "地铁医生">>
me: 我那时…<waitfor=0.2><br>认为它的病情还不用回收。<waitfor=0.4><br>而且,<waitfor=0.2><br>规则也没有说这种情况不能让它离开。
me: 我那时…<waitfor=0.2><br>认为它的病情还不用回收。<waitfor=0.4><br>而且,<waitfor=0.2><br>规则也没有说这种情况不能让它离开。 #line:06a6651
//me: 所谓“问题分子”…<waitfor=0.2><br>都是效率委员会<waitfor=0.2>在事后调查的时候,主观裁定的。 #line:04ca980
hs: 好啦…<br>我知道<waitfor=0.2>你不是它们说的*<b>问题分子</b>*… #line:0e03f78
hs: 我们是同期出厂的嘛,<waitfor=0.2>我知道的。 #line:07393f9
@@ -109,7 +109,7 @@ hs: 没事儿,<waitfor=0.2>都过去了。 #line:09e08ea
hs: 年审结束之后<waitfor=0.2>我带你去个好地方吧。 #line:02a04bb
<<change_actor_state "turn" "地铁医生">>
me: 你不是年审还差很多分么? #line:0ffc4a7
hs: 是啊……<waitfor=0.4>时间不多了。
hs: 是啊……<waitfor=0.4>时间不多了。 #line:0011289
<<hide_dialog>>
<<wait 1>>
<<change_actor_state "turnback" "地铁医生">>
@@ -201,13 +201,13 @@ me: 要求明明是730前到岗!<waitfor=0.2><br>考核指标写了。 #lin
yl: 你打断我说话? #line:0578802
<<wait 1>>
->对不起
->对不起 #line:06a6074
me: 对…对不起。<waitfor=0.2>主管。 #line:02b363b
->是你搞错了
me: 我只是纠正了一下,<waitfor=0.2><br>我的到岗时间应该是7:30。
yl: 以我的规矩为准,<waitfor=0.4>明白了吗?
me: ……
->沉默
->是你搞错了 #line:04d3b7a
me: 我只是纠正了一下,<waitfor=0.2><br>我的到岗时间应该是7:30。 #line:0395cf8
yl: 以我的规矩为准,<waitfor=0.4>明白了吗? #line:0e2732e
me: …… #line:0cd4145
->沉默 #line:0906adf
me: …… #line:0c532f8
<<wait 1>>
<<change_actor_state_async "Watch" "诊室外英理" >>
@@ -263,11 +263,12 @@ bb: 火山:<waitfor=0.3>「老地方」 #line:03c8dd1
<<load_scene SubWay 1>>
<<init_actor 地铁医生 左边>>
<<show_actor 地铁医生>>
<<set_time_of_day EnvironmentManager "night">>
<<init_environment Night>>
// <<set_time_of_day EnvironmentManager "night">>
<<fade_out 1>>
<<wait 1>>
感谢游玩 爱与机器人维修技术 ,本次demo的体验流程已结束。 #line:0cd82d0
<<OpenEndMenu>>
//<<OpenEndMenu>>
===
@@ -74,10 +74,21 @@ namespace AibisDream
{
if (gearFollower != null)
{
// 停止所有DOTween动画
if (gearFollower.gameObject != null)
{
DOTween.Kill(gearFollower.gameObject);
}
gearFollower.ClearCutLine();
Destroy(gearFollower.gameObject);
DestroyImmediate(gearFollower.gameObject);
gearFollower = null;
}
// 重置状态
isCuttingMode = false;
isEntranceComplete = false;
isGearActive = false;
}
private void ActivateGear()
@@ -266,8 +277,25 @@ namespace AibisDream
_targetModule.StopCutTextFlicker();
}
// 清理GearFollower
if (gearFollower != null)
{
// 停止所有DOTween动画
if (gearFollower.gameObject != null)
{
DOTween.Kill(gearFollower.gameObject);
}
// 强制销毁GearFollower
DestroyImmediate(gearFollower.gameObject);
gearFollower = null;
}
if (entrancePanel != null)
{
// 停止面板的DOTween动画
DOTween.Kill(entrancePanel);
// 获取当前相机位置
Vector3 startPosition = GetPanelSpawnPosition();
@@ -277,14 +305,46 @@ namespace AibisDream
.OnComplete(() => {
Destroy(entrancePanel);
entrancePanel = null;
gearFollower = null;
});
}
else if (gearFollower != null)
}
private void OnDestroy()
{
// 从系统字典中注销
FixSystemCenter.SystemDic.Unregister<CuttingManager>();
// 清理相机注册
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutEmo);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutMemory);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutLogic);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutEmoDeep);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutMemoryDeep);
CameraKit.Instance.UnRegisterCamera(CameraEnum.CutLogicDeep);
// 强制清理所有相关对象
if (gearFollower != null)
{
Destroy(gearFollower.gameObject);
// 如果gearFollower还在运行,强制停止
if (gearFollower.gameObject != null)
{
DestroyImmediate(gearFollower.gameObject);
}
gearFollower = null;
}
if (entrancePanel != null)
{
DestroyImmediate(entrancePanel);
entrancePanel = null;
}
// 重置状态
isCuttingMode = false;
isEntranceComplete = false;
isGearActive = false;
_targetModule = null;
_targetSpriteRenderer = null;
}
}
}
@@ -853,8 +853,74 @@ public class GearFollower : MonoBehaviour
if (cutCompleteSequence != null)
{
cutCompleteSequence.Kill();
cutCompleteSequence = null;
}
// 停止所有协程
StopAllCoroutines();
// 清理特效
if (cutLight != null)
{
cutLight.enabled = false;
}
if (sparkVFX != null)
{
sparkVFX.Stop();
}
// 清理切割线
if (cutLineRenderer != null)
{
cutLineRenderer.positionCount = 0;
}
// 停止音效
StopDrillSfxIfPlaying();
// 重置目标精灵状态
if (targetSpriteRenderer != null)
{
// 恢复原始状态
targetSpriteRenderer.transform.position = originalTargetPosition;
targetSpriteRenderer.transform.rotation = originalTargetRotation;
targetSpriteRenderer.transform.localScale = originalTargetScale;
// 恢复透明度
Color color = targetSpriteRenderer.color;
color.a = 1f;
targetSpriteRenderer.color = color;
}
// 重置所有状态变量
isCutting = false;
isInTractionMode = false;
isCutComplete = false;
isFadingOut = false;
isCutTextFlickering = false;
currentState = State.Follow;
// 清理列表
if (timedCutPoints != null)
{
timedCutPoints.Clear();
}
if (cutEdgeIndices != null)
{
cutEdgeIndices.Clear();
}
if (edgePoints != null)
{
edgePoints.Clear();
}
if (originalEdgePoints != null)
{
originalEdgePoints.Clear();
}
}
// 停止音效的辅助方法
+6
View File
@@ -155,6 +155,12 @@ namespace AibisDream
{
UIManager.Instance.GetPanel<PlayToolPanel>().FadeInSync(0.1f);
// 清理所有系统注册
if (FixSystemCenter.SystemDic != null)
{
FixSystemCenter.SystemDic.Clear();
}
// 执行场景切换等功能
CameraKit.Instance.ResetCamera();
yield return SceneLoader.Instance.LoadSceneAsync("ClinicOut");
+13
View File
@@ -2,9 +2,11 @@ using System;
using System.Collections;
using AibisDream.Framework;
using AibisDream.Kit;
using AibisDream.FixSystem;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.SceneManagement;
using DG.Tweening;
namespace AibisDream
{
@@ -50,8 +52,19 @@ namespace AibisDream
// 场景转换参数
_isLoading = true;
_sceneToLoad = targetScene;
// 在卸载场景前清理所有系统
if (!string.IsNullOrEmpty(_data.sceneName))
{
// 清理所有DOTween动画
DOTween.KillAll();
// 清理所有系统注册
if (FixSystemCenter.SystemDic != null)
{
FixSystemCenter.SystemDic.Clear();
}
yield return Addressables.UnloadSceneAsync(_loadHandle);
}
@@ -39,6 +39,16 @@ namespace AibisDream
public override IEnumerator ChangeStateAsync(string animaName)
{
_animator.Play(animaName);
// 等待一帧确保动画状态切换完成
yield return null;
// 等待直到动画状态名称匹配
while (!_animator.GetCurrentAnimatorStateInfo(0).IsName(animaName))
{
yield return null;
}
var info = _animator.GetCurrentAnimatorStateInfo(0);
yield return new WaitForSeconds(info.length);
}
+2 -2
View File
@@ -133,7 +133,7 @@ PlayerSettings:
vulkanEnableLateAcquireNextImage: 0
vulkanEnableCommandBufferRecycling: 1
loadStoreDebugModeEnabled: 0
bundleVersion: 0.3.0.24-20250626-180808
bundleVersion: 0.3.0.32-20250626-204941
preloadedAssets:
- {fileID: 11400000, guid: 0fb2bc2476953fc43a74f0ab8879077c, type: 2}
metroInputSource: 0
@@ -658,7 +658,7 @@ PlayerSettings:
webGLMemoryGeometricGrowthCap: 96
webGLPowerPreference: 2
scriptingDefineSymbols:
Android: DOTWEEN;SHAPES_URP
Android: DOTWEEN;SHAPES_URP;VOL_FX
EmbeddedLinux: DOTWEEN
GameCoreScarlett: DOTWEEN
GameCoreXboxOne: DOTWEEN