14 #if !ExcludeAskowlTests 23 namespace Askowl.Transcripts {
25 [CreateAssetMenu(menuName =
"Managers/Player Death"), Serializable]
28 [SerializeField]
private Float health =
default;
29 [SerializeField]
private Integer coins =
default;
30 [SerializeField]
private Integer lives =
default;
31 [SerializeField]
private Integer scene =
default;
33 [SerializeField]
private Integer maximumLives =
default;
35 [SerializeField]
private GameObject player =
default;
36 [SerializeField]
private GameObject checkpoint =
default;
39 protected override void Initialise() => health.Emitter.Listen(OnHealthChange, once:
false);
42 private void OnHealthChange(Emitter emitter) {
43 if (health <= 0) KillPlayer();
47 private void KillPlayer() {
51 SendPlayerToCheckpoint();
55 private void RestartGame() {
56 lives.
Value = maximumLives;
63 private void SendPlayerToCheckpoint() => player.
Value.transform.position = checkpoint.
Value.transform.position;
68 [SerializeField]
private Integer scene =
default;
71 protected override void Initialise() => scene.Emitter.Listen(OnSceneChange, once:
false);
74 private void OnSceneChange(Emitter emitter) =>
75 UnityEngine.SceneManagement.SceneManager.LoadScene(sceneBuildIndex: scene);
virtual T Value
For safe(ish) access to the contents field
override UnityEngine.GameObject Value
For safe(ish) access to the contents field
Float CustomAsset contains a float value which can be connected directly to OnValueChange callbacks i...
Float CustomAsset contains a float value which can be connected directly to OnValueChange callbacks i...