Skip to content

Commit f6968e7

Browse files
feat: fixed
1 parent b5e7e66 commit f6968e7

File tree

2 files changed

+164
-5
lines changed

2 files changed

+164
-5
lines changed

Assets/Scenes/Level5.unity

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,52 @@ CanvasRenderer:
389389
m_PrefabAsset: {fileID: 0}
390390
m_GameObject: {fileID: 196310161}
391391
m_CullTransparentMesh: 1
392+
--- !u!1 &599498131
393+
GameObject:
394+
m_ObjectHideFlags: 0
395+
m_CorrespondingSourceObject: {fileID: 0}
396+
m_PrefabInstance: {fileID: 0}
397+
m_PrefabAsset: {fileID: 0}
398+
serializedVersion: 6
399+
m_Component:
400+
- component: {fileID: 599498133}
401+
- component: {fileID: 599498132}
402+
m_Layer: 0
403+
m_Name: LevelTimer
404+
m_TagString: Untagged
405+
m_Icon: {fileID: 0}
406+
m_NavMeshLayer: 0
407+
m_StaticEditorFlags: 0
408+
m_IsActive: 1
409+
--- !u!114 &599498132
410+
MonoBehaviour:
411+
m_ObjectHideFlags: 0
412+
m_CorrespondingSourceObject: {fileID: 0}
413+
m_PrefabInstance: {fileID: 0}
414+
m_PrefabAsset: {fileID: 0}
415+
m_GameObject: {fileID: 599498131}
416+
m_Enabled: 1
417+
m_EditorHideFlags: 0
418+
m_Script: {fileID: 11500000, guid: 3e41c49b980cf164789490f753b95d94, type: 3}
419+
m_Name:
420+
m_EditorClassIdentifier: Assembly-CSharp::LevelTimer
421+
countdownText: {fileID: 1885889486}
422+
countdownFrom: 3
423+
--- !u!4 &599498133
424+
Transform:
425+
m_ObjectHideFlags: 0
426+
m_CorrespondingSourceObject: {fileID: 0}
427+
m_PrefabInstance: {fileID: 0}
428+
m_PrefabAsset: {fileID: 0}
429+
m_GameObject: {fileID: 599498131}
430+
serializedVersion: 2
431+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
432+
m_LocalPosition: {x: 2.79642, y: 0.22831, z: 3.65557}
433+
m_LocalScale: {x: 1, y: 1, z: 1}
434+
m_ConstrainProportionsScale: 0
435+
m_Children: []
436+
m_Father: {fileID: 0}
437+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
392438
--- !u!1 &758042487
393439
GameObject:
394440
m_ObjectHideFlags: 0
@@ -1079,6 +1125,7 @@ RectTransform:
10791125
m_ConstrainProportionsScale: 0
10801126
m_Children:
10811127
- {fileID: 196310162}
1128+
- {fileID: 1885889488}
10821129
m_Father: {fileID: 0}
10831130
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
10841131
m_AnchorMin: {x: 0, y: 0}
@@ -1213,6 +1260,87 @@ MonoBehaviour:
12131260
m_ShadowLayerMask: 1
12141261
m_RenderingLayers: 1
12151262
m_ShadowRenderingLayers: 1
1263+
--- !u!1 &1885889485
1264+
GameObject:
1265+
m_ObjectHideFlags: 0
1266+
m_CorrespondingSourceObject: {fileID: 0}
1267+
m_PrefabInstance: {fileID: 0}
1268+
m_PrefabAsset: {fileID: 0}
1269+
serializedVersion: 6
1270+
m_Component:
1271+
- component: {fileID: 1885889488}
1272+
- component: {fileID: 1885889487}
1273+
- component: {fileID: 1885889486}
1274+
m_Layer: 5
1275+
m_Name: Text (Legacy)
1276+
m_TagString: Untagged
1277+
m_Icon: {fileID: 0}
1278+
m_NavMeshLayer: 0
1279+
m_StaticEditorFlags: 0
1280+
m_IsActive: 1
1281+
--- !u!114 &1885889486
1282+
MonoBehaviour:
1283+
m_ObjectHideFlags: 0
1284+
m_CorrespondingSourceObject: {fileID: 0}
1285+
m_PrefabInstance: {fileID: 0}
1286+
m_PrefabAsset: {fileID: 0}
1287+
m_GameObject: {fileID: 1885889485}
1288+
m_Enabled: 1
1289+
m_EditorHideFlags: 0
1290+
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
1291+
m_Name:
1292+
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Text
1293+
m_Material: {fileID: 0}
1294+
m_Color: {r: 1, g: 0, b: 0, a: 1}
1295+
m_RaycastTarget: 1
1296+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
1297+
m_Maskable: 1
1298+
m_OnCullStateChanged:
1299+
m_PersistentCalls:
1300+
m_Calls: []
1301+
m_FontData:
1302+
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
1303+
m_FontSize: 20
1304+
m_FontStyle: 0
1305+
m_BestFit: 0
1306+
m_MinSize: 2
1307+
m_MaxSize: 40
1308+
m_Alignment: 1
1309+
m_AlignByGeometry: 0
1310+
m_RichText: 1
1311+
m_HorizontalOverflow: 1
1312+
m_VerticalOverflow: 0
1313+
m_LineSpacing: 1
1314+
m_Text: '0
1315+
1316+
'
1317+
--- !u!222 &1885889487
1318+
CanvasRenderer:
1319+
m_ObjectHideFlags: 0
1320+
m_CorrespondingSourceObject: {fileID: 0}
1321+
m_PrefabInstance: {fileID: 0}
1322+
m_PrefabAsset: {fileID: 0}
1323+
m_GameObject: {fileID: 1885889485}
1324+
m_CullTransparentMesh: 1
1325+
--- !u!224 &1885889488
1326+
RectTransform:
1327+
m_ObjectHideFlags: 0
1328+
m_CorrespondingSourceObject: {fileID: 0}
1329+
m_PrefabInstance: {fileID: 0}
1330+
m_PrefabAsset: {fileID: 0}
1331+
m_GameObject: {fileID: 1885889485}
1332+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
1333+
m_LocalPosition: {x: 0, y: 0, z: 0}
1334+
m_LocalScale: {x: 3.0135, y: 3.7127, z: 1}
1335+
m_ConstrainProportionsScale: 0
1336+
m_Children: []
1337+
m_Father: {fileID: 1497940459}
1338+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1339+
m_AnchorMin: {x: 0.5, y: 0.5}
1340+
m_AnchorMax: {x: 0.5, y: 0.5}
1341+
m_AnchoredPosition: {x: 0, y: 0}
1342+
m_SizeDelta: {x: 160, y: 30}
1343+
m_Pivot: {x: 0.5, y: 0.5}
12161344
--- !u!1660057539 &9223372036854775807
12171345
SceneRoots:
12181346
m_ObjectHideFlags: 0
@@ -1226,3 +1354,4 @@ SceneRoots:
12261354
- {fileID: 1233100333}
12271355
- {fileID: 1497940459}
12281356
- {fileID: 834629862}
1357+
- {fileID: 599498133}

Assets/Scripts/LevelTimer.cs

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,48 @@
11
using UnityEngine;
2+
using UnityEngine.UI;
3+
using System.Collections;
4+
25

3-
/// <summary>
4-
/// Tracks the time elapsed since the level started.
5-
/// Used to calculate completion time for saving best times.
6-
/// </summary>
76
public class LevelTimer : MonoBehaviour
87
{
8+
public Text countdownText; // Assign in inspector
9+
public float countdownFrom = 3f;
10+
911
private float levelStartTime;
1012
private bool isTimerRunning = false;
1113
private int currentLevelIndex;
1214

1315
private void Start()
1416
{
17+
StartCoroutine(CountdownAndStart());
18+
}
19+
20+
private IEnumerator CountdownAndStart()
21+
{
22+
if (countdownText != null)
23+
{
24+
countdownText.gameObject.SetActive(true);
25+
}
26+
27+
Time.timeScale = 0f; // Pause the game
28+
29+
float countdown = countdownFrom;
30+
while (countdown > 0)
31+
{
32+
if (countdownText != null)
33+
{
34+
countdownText.text = Mathf.Ceil(countdown).ToString();
35+
}
36+
yield return new WaitForSecondsRealtime(1f);
37+
countdown--;
38+
}
39+
40+
if (countdownText != null)
41+
{
42+
countdownText.gameObject.SetActive(false);
43+
}
44+
45+
Time.timeScale = 1f; // Resume the game
1546
StartTimer();
1647
}
1748

@@ -74,4 +105,3 @@ public void ResetTimer()
74105
Debug.Log($"Level {currentLevelIndex} timer reset");
75106
}
76107
}
77-

0 commit comments

Comments
 (0)