增加计时器功能

This commit is contained in:
2025-06-16 17:54:16 +08:00
parent 8d74bb2f2b
commit 9b7d03e2d0
9 changed files with 1985 additions and 1754 deletions
File diff suppressed because it is too large Load Diff
+164 -11
View File
@@ -5058,7 +5058,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 960.00006, y: -909.66833}
m_AnchoredPosition: {x: 960.00006, y: -909.6166}
m_SizeDelta: {x: 1000, y: 80}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &296256892
@@ -6141,7 +6141,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 960.00006, y: -549.005}
m_AnchoredPosition: {x: 960.00006, y: -548.97394}
m_SizeDelta: {x: 400, y: 300}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &430924360
@@ -13655,7 +13655,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 960.00006, y: -204.33667}
m_AnchoredPosition: {x: 960.00006, y: -204.32632}
m_SizeDelta: {x: 300, y: 48.01}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1076103036
@@ -18028,6 +18028,154 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 85815d386fde43dca8b4be1cfd26fe89, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1393438673
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1393438674}
- component: {fileID: 1393438676}
- component: {fileID: 1393438675}
- component: {fileID: 1393438677}
m_Layer: 5
m_Name: DemoTimer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &1393438674
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1393438673}
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: 2135943277}
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: 875, y: -475}
m_SizeDelta: {x: 150.07, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1393438675
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1393438673}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 00:00:00
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &1393438676
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1393438673}
m_CullTransparentMesh: 1
--- !u!114 &1393438677
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1393438673}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a21f67dffcd841adb0f408b5cf075ea8, type: 3}
m_Name:
m_EditorClassIdentifier:
totalTimeInSeconds: 10
--- !u!1 &1395758056
GameObject:
m_ObjectHideFlags: 0
@@ -19218,7 +19366,7 @@ PrefabInstance:
m_Modifications:
- target: {fileID: 27177156846382951, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3}
propertyPath: m_SizeDelta.x
value: 100.81
value: 100.8
objectReference: {fileID: 0}
- target: {fileID: 4099831927643554877, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3}
propertyPath: prop
@@ -19326,7 +19474,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3}
propertyPath: m_AnchoredPosition.y
value: -230
value: -190
objectReference: {fileID: 0}
- target: {fileID: 5824597425683931436, guid: e45f5fd66e7512444a9a27161cf51b7f, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@@ -22129,7 +22277,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 300, y: -241.75}
m_AnchoredPosition: {x: 300, y: -241.73447}
m_SizeDelta: {x: 300, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1758246148
@@ -26788,6 +26936,7 @@ RectTransform:
m_Children:
- {fileID: 367483172}
- {fileID: 1609388204}
- {fileID: 1393438674}
m_Father: {fileID: 2091451641}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -26849,7 +26998,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 300, y: -731.75}
m_AnchoredPosition: {x: 300, y: -731.70337}
m_SizeDelta: {x: 298, y: 313}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2139849582
@@ -41366,7 +41515,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 305064715333190683, guid: 2c1bcc3613815c74fb44cc1db21f524e, type: 3}
propertyPath: m_AnchoredPosition.y
value: -70
value: -110
objectReference: {fileID: 0}
- target: {fileID: 305064715333190683, guid: 2c1bcc3613815c74fb44cc1db21f524e, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@@ -41382,7 +41531,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1163567057521848681, guid: 2c1bcc3613815c74fb44cc1db21f524e, type: 3}
propertyPath: m_SizeDelta.x
value: 67.21
value: 67.2
objectReference: {fileID: 0}
- target: {fileID: 1425762017047074178, guid: 2c1bcc3613815c74fb44cc1db21f524e, type: 3}
propertyPath: m_AnchorMax.y
@@ -41398,7 +41547,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5952270497693892333, guid: 2c1bcc3613815c74fb44cc1db21f524e, type: 3}
propertyPath: m_SizeDelta.x
value: 18.67
value: 18.68
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
@@ -54093,9 +54242,13 @@ PrefabInstance:
propertyPath: m_Name
value: Language
objectReference: {fileID: 0}
- target: {fileID: 3694944920212717692, guid: f3517f06477b08841808ac3d8f304740, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3927667113686967073, guid: f3517f06477b08841808ac3d8f304740, type: 3}
propertyPath: m_SizeDelta.x
value: 0
value: 100.8
objectReference: {fileID: 0}
- target: {fileID: 4234428467162922196, guid: f3517f06477b08841808ac3d8f304740, type: 3}
propertyPath: m_Pivot.x
@@ -159,7 +159,6 @@ namespace AibisDream.Framework
public float SwitchCameraSync(CameraEnum camType)
{
Debug.Log("Camera Type is:" + camType);
if (_curCameraEnum == camType)
{
return 0;
@@ -194,6 +193,13 @@ namespace AibisDream.Framework
return activeBrain.m_DefaultBlend.BlendTime;
}
public void ResetCamera()
{
_curCameraEnum = CameraEnum.Default;
_camInitStateDict.Clear();
_camInitStateDict.Clear();
}
private void ResetVirCam(CameraEnum cameraEnum)
{
if (cameraEnum == CameraEnum.Default)
+73
View File
@@ -0,0 +1,73 @@
using AibisDream.Framework;
using UnityEngine;
using TMPro;
namespace AibisDream
{
public class DemoTimer : MonoBehaviour
{
public float totalTimeInSeconds = 1200f;
private TMP_Text _timerText;
private float _currentTime;
private bool _isRunning;
private void Awake()
{
_timerText = GetComponent<TMP_Text>();
// 注册事件
EnumEventSystem.Global.Register(GameLoopEnum.GameStart, TimerStart);
EnumEventSystem.Global.Register(GameLoopEnum.GameQuit, TimerStop);
}
private void TimerStart()
{
_currentTime = totalTimeInSeconds;
_isRunning = true;
_timerText.enabled = true;
}
private void TimerStop()
{
_currentTime = 0;
_isRunning = false;
_timerText.enabled = false;
}
private void TimerPause()
{
_isRunning = false;
}
private void Update()
{
if (_isRunning)
{
_currentTime -= Time.deltaTime;
if (_currentTime <= 0)
{
TimerPause();
ForceReturnToMainMenu();
}
else
{
UpdateTimerDisplay();
}
}
}
private void UpdateTimerDisplay()
{
int hours = Mathf.FloorToInt(_currentTime / 3600);
int minutes = Mathf.FloorToInt(_currentTime % 3600 / 60);
int seconds = Mathf.FloorToInt(_currentTime % 60);
_timerText.text = $"{hours:D2}:{minutes:D2}:{seconds:D2}";
}
private void ForceReturnToMainMenu()
{
// 打开EndPanel
UIManager.Instance.ShowPanel<EndPanel>();
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a21f67dffcd841adb0f408b5cf075ea8
timeCreated: 1750061640
+6 -7
View File
@@ -141,14 +141,8 @@ namespace AibisDream
{
// 系统继续
Time.timeScale = 1;
// 交互继续
EnumEventSystem.Global.Send(GameLoopEnum.GameQuit);
// 卸载当前场景
StartCoroutine(RestartCoroutine());
// 音频继续
AudioManager.Instance.UnPauseAll();
// 打开Dialog
DialogCanvasManager.Instance.OpenCanvas();
}
public void QuitApp()
@@ -158,12 +152,17 @@ namespace AibisDream
private IEnumerator RestartCoroutine()
{
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeInAsync();
UIManager.Instance.GetPanel<PlayToolPanel>().FadeInSync(0.1f);
// 执行场景切换等功能
CameraKit.Instance.ResetCamera();
yield return SceneLoader.Instance.LoadSceneAsync("ClinicOut");
DialogController.Instance.StopDialog();
EnumEventSystem.Global.Send(GameLoopEnum.GameQuit);
// 音频继续
AudioManager.Instance.UnPauseAll();
// 打开Dialog
DialogCanvasManager.Instance.OpenCanvas();
yield return UIManager.Instance.GetPanel<PlayToolPanel>().FadeOutAsync();
}
-5
View File
@@ -47,10 +47,5 @@ namespace AibisDream
}
}
}
public void UpdateFormData()
{
}
}
}
+2
View File
@@ -13,6 +13,7 @@ namespace AibisDream
public void Show()
{
GameManager.Instance.PauseGame();
gameObject.SetActive(true);
RegisterButton();
}
@@ -21,6 +22,7 @@ namespace AibisDream
{
gameObject.SetActive(false);
UnRegisterButton();
GameManager.Instance.ContinueGame();
}
#endregion
+1 -1
View File
@@ -63,7 +63,7 @@ namespace AibisDream
{
DialogController.Instance.quickRunMode = !DialogController.Instance.quickRunMode;
Time.timeScale = DialogController.Instance.quickRunMode ? 10f : 1f;
Time.timeScale = DialogController.Instance.quickRunMode ? 8f : 1f;
}
private void OpenSettingPanel()