Main Page
Related Pages
Modules
Classes
GamePlayManager.cs
1
//#define MULTIPLE_SCENES_LEVELS
2
//#define LOADING_SCENE
3
using
UnityEngine;
4
using
UnityEngine.SceneManagement;
5
using
UnityEngine.UI;
6
7
public
class
GamePlayManager
: MonoBehaviour
8
{
12
[SerializeField] Text
OppScore
;
16
[SerializeField] Text
Score
;
20
[SerializeField] Text
timer
;
24
[SerializeField] Button
leave
;
25
29
public
void
LeaveGame
()
30
{
31
EndGame
();
32
if
(
GamePreparationManager
.
instance
)
33
GamePreparationManager
.
instance
.
LeaveGame
();
34
}
38
public
void
OnEnable
()
39
{
40
GamePreparationManager
.
DidReceiveOpponentsScoreEvent
+=
UpdateOpponentsScore
;
41
}
45
void
OnDisable
()
46
{
47
GamePreparationManager
.
DidReceiveOpponentsScoreEvent
-=
UpdateOpponentsScore
;
48
}
53
public
void
UpdateOpponentsScore
(
long
opponentsScore)
54
{
55
/*Opponent's score text object*/
OppScore
.text =
"Opponent : "
+ opponentsScore;
56
57
}
62
void
UpdateScore
(
long
score)
63
{
64
/*Player's score text object*/
65
Score
.text =
"Score : "
+ score.ToString();
66
if
(score > 0)
67
{
68
//Send new player score to platform
69
if
(
GamePreparationManager
.
instance
)
70
GamePreparationManager
.
instance
.
SendScore
(score);
71
}
72
}
73
78
void
Start
()
79
{
80
if
(
GamePreparationManager
.
endDate
!= 0 && !
gameEnded
){
81
timer
.text =
Epoch
.
GetTimerString
(Mathf.Abs(
GamePreparationManager
.
endDate
-
Epoch
.
Current
()));
82
83
leave
.onClick.AddListener(
LeaveGame
);
84
}
85
}
86
90
void
Update
()
91
{
92
if
(
GamePreparationManager
.
endDate
!= 0 && !
gameEnded
){
93
int
timeLeft =
GamePreparationManager
.
endDate
-
Epoch
.
Current
();
94
if
(timeLeft > 0)
95
timer
.text =
Epoch
.
GetTimerString
(Mathf.Abs(
GamePreparationManager
.
endDate
-
Epoch
.
Current
()));
96
else
97
Finish
(
GamePreparationManager
.
currentScore
);
98
}
99
}
100
104
bool
gameEnded
=
false
;
105
106
107
#if MULTIPLE_SCENES_LEVELS
108
111
void
Switch()
112
{
113
if
(!
gameEnded
)
114
{
115
GamePreparationManager
.
currentLevel
++;
116
117
#if LOADING_SCENE
118
SceneManager.LoadScene(
"{Loading scene name}"
);
119
#else
120
SceneManager.LoadScene(
"Level"
+
GamePreparationManager
.
levelList
[
GamePreparationManager
.
currentLevel
]);
121
#endif
122
}
123
}
124
#endif
125
130
void
EndGame
()
131
{
132
if
(!
gameEnded
)
133
{
134
gameEnded
=
true
;
135
GamePreparationManager
.
EndGame
();
136
}
137
}
138
143
void
Finish
(
long
score)
144
{
145
EndGame
();
146
if
(
GamePreparationManager
.
instance
)
147
GamePreparationManager
.
instance
.
FinishGame
(score);
148
}
149
}
GamePlayManager.EndGame
void EndGame()
Definition:
GamePlayManager.cs:130
GamePlayManager.leave
Button leave
Definition:
GamePlayManager.cs:24
GamePlayManager.OnDisable
void OnDisable()
Definition:
GamePlayManager.cs:45
GamePlayManager.UpdateOpponentsScore
void UpdateOpponentsScore(long opponentsScore)
Definition:
GamePlayManager.cs:53
GamePreparationManager.SendScore
void SendScore(long gameScore)
Definition:
GamePreparationManager.cs:243
GamePreparationManager.endDate
static int endDate
Definition:
GamePreparationManager.cs:71
GamePlayManager.LeaveGame
void LeaveGame()
Definition:
GamePlayManager.cs:29
GamePreparationManager.currentLevel
static int currentLevel
Definition:
GamePreparationManager.cs:55
GamePreparationManager.FinishGame
void FinishGame(long finalScore)
Definition:
GamePreparationManager.cs:253
GamePlayManager.OppScore
Text OppScore
Definition:
GamePlayManager.cs:12
GamePlayManager.UpdateScore
void UpdateScore(long score)
Definition:
GamePlayManager.cs:62
GamePreparationManager.EndGame
static void EndGame()
Definition:
GamePreparationManager.cs:297
GamePlayManager.timer
Text timer
Definition:
GamePlayManager.cs:20
Epoch.GetTimerString
static string GetTimerString(int timeLeft)
Definition:
Epoch.cs:19
GamePlayManager.Start
void Start()
Definition:
GamePlayManager.cs:78
GamePlayManager.Update
void Update()
Definition:
GamePlayManager.cs:90
GamePlayManager.OnEnable
void OnEnable()
Definition:
GamePlayManager.cs:38
GamePreparationManager.instance
static GamePreparationManager instance
Definition:
GamePreparationManager.cs:31
GamePreparationManager
Definition:
GamePreparationManager.cs:26
Epoch.Current
static int Current()
Definition:
Epoch.cs:8
GamePreparationManager.LeaveGame
void LeaveGame()
Definition:
GamePreparationManager.cs:261
GamePlayManager
Definition:
GamePlayManager.cs:7
GamePlayManager.gameEnded
bool gameEnded
Definition:
GamePlayManager.cs:104
GamePreparationManager.DidReceiveOpponentsScoreEvent
static System.Action< long > DidReceiveOpponentsScoreEvent
Definition:
GamePreparationManager.cs:43
GamePlayManager.Score
Text Score
Definition:
GamePlayManager.cs:16
Epoch
Definition:
Epoch.cs:3
GamePlayManager.Finish
void Finish(long score)
Definition:
GamePlayManager.cs:143
GamePreparationManager.levelList
static List< int > levelList
Definition:
GamePreparationManager.cs:51
GamePreparationManager.currentScore
static long currentScore
Definition:
GamePreparationManager.cs:59