Compare commits

...

4 Commits

7 changed files with 322 additions and 1 deletions
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: b300b218337a181408d98489b607a72b
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
+199 -1
View File
@@ -3941,6 +3941,7 @@ Transform:
- {fileID: 1282261902} - {fileID: 1282261902}
- {fileID: 709556714} - {fileID: 709556714}
- {fileID: 884308128} - {fileID: 884308128}
- {fileID: 2072548927}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &486141168 --- !u!1001 &486141168
@@ -6050,6 +6051,7 @@ GameObject:
- component: {fileID: 769732339} - component: {fileID: 769732339}
- component: {fileID: 769732338} - component: {fileID: 769732338}
- component: {fileID: 769732337} - component: {fileID: 769732337}
- component: {fileID: 769732340}
m_Layer: 0 m_Layer: 0
m_Name: StartLevelButton m_Name: StartLevelButton
m_TagString: Untagged m_TagString: Untagged
@@ -6183,6 +6185,21 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 769732335} m_GameObject: {fileID: 769732335}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &769732340
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 769732335}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a8f51f072b7c7e64b8fde0e36109e334, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::TimerViewer
_timer: {fileID: 2072548928}
_gameManager: {fileID: 1875710079}
_btnText: {fileID: 1462583103}
--- !u!1001 &778348370 --- !u!1001 &778348370
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -11243,6 +11260,135 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8d6715c95501a4f49bd34c8832850f32, type: 3} m_Script: {fileID: 11500000, guid: 8d6715c95501a4f49bd34c8832850f32, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: Assembly-CSharp::BlockScript m_EditorClassIdentifier: Assembly-CSharp::BlockScript
--- !u!1 &1417807935
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1417807936}
- component: {fileID: 1417807937}
m_Layer: 0
m_Name: BuildBgMiusic
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1417807936
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1417807935}
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: 1431145624}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!82 &1417807937
AudioSource:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1417807935}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 0}
m_Resource: {fileID: 8300000, guid: b300b218337a181408d98489b607a72b, type: 3}
m_PlayOnAwake: 1
m_Volume: 0.67
m_Pitch: 1
Loop: 1
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!1001 &1429144615 --- !u!1001 &1429144615
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -11345,7 +11491,9 @@ MonoBehaviour:
_wallet: {fileID: 1030979928} _wallet: {fileID: 1030979928}
_gameManager: {fileID: 1875710079} _gameManager: {fileID: 1875710079}
_levelBackgroundMusic: {fileID: 1897118789} _levelBackgroundMusic: {fileID: 1897118789}
_buildBackgroundMusic: {fileID: 0} _buildBackgroundMusic: {fileID: 1417807937}
_winMusic: {fileID: 0}
_loseMusic: {fileID: 0}
_grassBlockDestroySound: _grassBlockDestroySound:
- {fileID: 1641086313} - {fileID: 1641086313}
- {fileID: 1127156137} - {fileID: 1127156137}
@@ -11372,6 +11520,7 @@ Transform:
- {fileID: 1573731473} - {fileID: 1573731473}
- {fileID: 1087951941} - {fileID: 1087951941}
- {fileID: 1897118788} - {fileID: 1897118788}
- {fileID: 1417807936}
m_Father: {fileID: 481586150} m_Father: {fileID: 481586150}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1439091071 --- !u!1001 &1439091071
@@ -15513,6 +15662,55 @@ Transform:
m_CorrespondingSourceObject: {fileID: 5368672011475721328, guid: 8dd20c91f0d7a7b419f6bedcd1870cba, type: 3} m_CorrespondingSourceObject: {fileID: 5368672011475721328, guid: 8dd20c91f0d7a7b419f6bedcd1870cba, type: 3}
m_PrefabInstance: {fileID: 2022833990} m_PrefabInstance: {fileID: 2022833990}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &2072548926
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2072548927}
- component: {fileID: 2072548928}
m_Layer: 0
m_Name: TurretBuildTimer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2072548927
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2072548926}
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: 481586150}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2072548928
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2072548926}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 330d868d3d6a72c489dce65e1ca03edc, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::TurretsBuildTimer
_gameManager: {fileID: 1875710079}
_buildTime: 10
_onTick:
m_PersistentCalls:
m_Calls: []
--- !u!1001 &2096698926 --- !u!1001 &2096698926
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
+57
View File
@@ -0,0 +1,57 @@
using UnityEngine;
using System.Collections;
using UnityEngine.Events;
public class TurretsBuildTimer : MonoBehaviour
{
[SerializeField] private GameManager _gameManager;
[SerializeField] private float _buildTime = 10f;
[SerializeField] private UnityEvent<OnTickEventArgs> _onTick;
public event UnityAction<OnTickEventArgs> OnTick
{
add => _onTick.AddListener(value);
remove => _onTick.RemoveListener(value);
}
private static readonly WaitForSeconds _wait = new(1f);
private void OnEnable()
{
_gameManager.OnStateChanged += OnStateChanged;
}
private void OnDisable()
{
_gameManager.OnStateChanged -= OnStateChanged;
}
private void OnStateChanged(GameManager.GameState newState)
{
StopCoroutine(nameof(Timer));
if (newState == GameManager.GameState.BuildingTurrets)
StartCoroutine(nameof(Timer));
}
private IEnumerator Timer()
{
for (float i = 0; i < _buildTime; i++)
{
_onTick?.Invoke(new OnTickEventArgs
{
ElapsedSeconds = i,
TotalSeconds = _buildTime
});
yield return _wait;
}
_gameManager.NextLevel();
}
public class OnTickEventArgs
{
public float SecondsLeft => TotalSeconds - ElapsedSeconds;
public float ElapsedSeconds { get; set; }
public float TotalSeconds { get; set; }
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 330d868d3d6a72c489dce65e1ca03edc
+39
View File
@@ -0,0 +1,39 @@
using UnityEngine;
public class TimerViewer : MonoBehaviour
{
[SerializeField] private TurretsBuildTimer _timer;
[SerializeField] private GameManager _gameManager;
[SerializeField] private TMPro.TextMeshProUGUI _btnText;
private bool _isFirstTime = true;
private void OnEnable()
{
_timer.OnTick += OnTick;
_gameManager.OnLevelChanged += OnLevelStart;
}
private void OnDisable()
{
_timer.OnTick -= OnTick;
_gameManager.OnLevelChanged -= OnLevelStart;
}
private void OnTick(TurretsBuildTimer.OnTickEventArgs args)
{
if (_isFirstTime)
{
_btnText.text = $"Start ({args.SecondsLeft:0})";
return;
}
_btnText.text = $"Next wave ({args.SecondsLeft:0})";
}
private void OnLevelStart(GameManager.OnLevelChangedEventArgs _)
{
_isFirstTime = false;
_btnText.text = "Next wave";
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a8f51f072b7c7e64b8fde0e36109e334