-
- Diagram where it's showing structure and dependancies of classes. (Inaccurate, outdated)
classDiagram
class StateMachine ~MonoBehaviour~{
<<abstract>>
#GameState GameState
#PlayerState PlayerState
+SetGameState()
+SetPlayerState()
}
class GameModeController{
+GameObject player
+Vector3 spawnPoint
}
class GameState{
#GameModeController GameModeController
#GameState(GameModeController)
+virtual IEnumerator Start()
}
class PlayerState{
#GameModeController GameModeController
#PlayerState(GameModeController)
+virtual IEnumerator Start()
+virtual IEnumerator Exit()
}
class StartGame{
+StartGame(GameModeController) : base(GameModeController)
+override IEnumerator Start()
}
class SpawningPlayer{
+SpawningPlayer(GameModeController) : base(GameModeController)
+override IEnumerator Start()
}
class Bouncing{
+Bouncing(GameModeController) : base(GameModeController)
+override IEnumerator Start()
}
class Jumping{
+Jumping(GameModeController) : base(GameModeController)
+override IEnumerator Start()
}
StateMachine <|-- GameModeController : Inheritance
PlayerState <|-- SpawningPlayer : Inheritance
PlayerState <|-- Bouncing : Inheritance
PlayerState <|-- Jumping : Inheritance
GameState <|-- StartGame : Inheritance
GameModeController <.. PlayerState : Dependency
GameModeController <.. GameState : Dependency
GameModeController <.. StartGame : Dependency
GameModeController <.. SpawningPlayer : Dependency
GameModeController <.. Bouncing : Dependency
GameModeController <.. Jumping : Dependency
-
- Diagram where it's showing interactions between classes, it goes from starting the game to spawning ball and at the end showing loop how the ball behaves. (Inaccurate, outdated)
sequenceDiagram
autonumber
participant GameModeController
participant GameState
participant PlayerState
GameModeController->>GameState: SetGameState();
GameState->>StartGame: Start()
StartGame->>GameModeController: SetPlayerState(new SpawningPlayer(GameModeController))
GameModeController->>PlayerState: StartCoroutine(new SpawningPlayer())
PlayerState->>SpawningPlayer: Start()
SpawningPlayer->>GameModeController: GameModeController.player = Object.Instantiate()
SpawningPlayer->>PlayerControls: Object.Instantiate()
SpawningPlayer->>GameModeController: SetPlayerState(new Bouncing())
GameModeController->>PlayerState: SetPlayerState();
GameState->>Bouncing: Start()
%% Aim to end autonumber here
loop OnCollisionEnter() with tag "Ground"/"Platform"
PlayerControls->>GameModeController: SetPlayerState(new Jumping())
GameModeController->>PlayerState: StartCoroutine(new Jump())
PlayerState->>Jumping: Start()
Jumping->>GameModeController: SetPlayerState(new Bouncing())
GameModeController->>PlayerState: SetGameState();
GameState->>Bouncing: Start()
end