added transition scene with basic tutorial AND PERSISTENT DATA

PLEASE launch game from the main menu scene, otherwise persistent data will not load correctly
This commit is contained in:
slevy14
2023-04-25 13:27:12 -07:00
parent cea079d243
commit c0f9749da5
17 changed files with 1790 additions and 242 deletions

View File

@@ -0,0 +1,30 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using TMPro;
public class DialogBoxes : MonoBehaviour
{
[Header("Dialog Messages:")]
[SerializeField] string[] dialogMessages;
private TMP_Text textField;
private int messageCount = 0;
// Start is called before the first frame update
void Start()
{
textField = this.gameObject.GetComponent<TMP_Text>();
textField.text = dialogMessages[0];
}
void OnAdvanceDialog() {
messageCount += 1;
if (messageCount < dialogMessages.Length) {
textField.text = dialogMessages[messageCount];
} else { // no more dialog messages, advance the scene
GameObject.Find("SceneManager").GetComponent<SceneController>().NextScene();
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: cfde94a1d6dbc4cb49a9a7530cb6f6e0
guid: 72c45d3f9da5e4ffc8662964e2518a79
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,30 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class PauseController : MonoBehaviour
{
public bool isPaused = false;
public GameObject pauseMenuCanvas;
void Awake() {
TogglePauseMenu(false);
}
void OnPause() {
if (!isPaused) {
Time.timeScale = 0;
TogglePauseMenu(true);
} else {
Time.timeScale = 1;
TogglePauseMenu(false);
}
isPaused = !isPaused;
}
void TogglePauseMenu(bool showPauseMenu) {
pauseMenuCanvas.SetActive(showPauseMenu);
}
}

View File

@@ -132,7 +132,7 @@ public class PlayerBehavior : MonoBehaviour
}
void LetGoOfGrapple() {
bool currentlyPaused = GameObject.Find("PauseMenu").GetComponent<PauseController>().isPaused;
bool currentlyPaused = stateController.isPaused;
if (grapplingRope.isGrappling && !currentlyPaused) {
print("currently paused is " + currentlyPaused + ", releasing grapple");
if (tambourine != null) {

View File

@@ -10,6 +10,9 @@ public class SpawnPointBehavior : MonoBehaviour
[SerializeField] private Sprite deactivatedSprite;
[SerializeField] private Sprite activatedSprite;
[Header("Initialization")]
[SerializeField] public bool firstSpawnPoint;
// not set in inspector
private SpriteRenderer _sr;
private StateController stateController;
@@ -19,6 +22,9 @@ public class SpawnPointBehavior : MonoBehaviour
{
_sr = this.gameObject.GetComponent<SpriteRenderer>();
stateController = GameObject.Find("StateController").GetComponent<StateController>();
if (firstSpawnPoint) {
ActivateSpawnPoint();
}
}
public void ActivateSpawnPoint() {

View File

@@ -1,6 +1,8 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class StateController : MonoBehaviour {
@@ -9,14 +11,49 @@ public class StateController : MonoBehaviour {
public GameObject spawnPoint;
[SerializeField] private GameObject deathCanvas;
[Header("Pause Menu")]
public bool isPaused = false;
public GameObject pauseMenuCanvas;
void Awake() {
deathCanvas.SetActive(false);
DontDestroyOnLoad(this.gameObject);
SceneManager.sceneLoaded += OnSceneLoaded;
}
void OnSceneLoaded(Scene scene, LoadSceneMode mode) {
deathCanvas = GameObject.Find("DeathUICanvas");
if (deathCanvas != null) {
Button respawnButton = GameObject.Find("RespawnButton").GetComponent<Button>();
respawnButton.onClick.AddListener(RespawnPlayer);
deathCanvas.SetActive(false);
}
pauseMenuCanvas = GameObject.Find("PauseMenuCanvas");
if (pauseMenuCanvas != null) {
TogglePauseMenu(false);
}
}
void OnPause() {
if (!isPaused) {
Time.timeScale = 0;
TogglePauseMenu(true);
} else {
Time.timeScale = 1;
TogglePauseMenu(false);
}
isPaused = !isPaused;
}
void TogglePauseMenu(bool showPauseMenu) {
pauseMenuCanvas.SetActive(showPauseMenu);
}
public void RespawnPlayer() {
SetDeathCanvasActive(false);
GameObject.Find("Main Camera").GetComponent<CameraMovement>().FindPlayer();
Instantiate(player, spawnPoint.transform.position, spawnPoint.transform.rotation);
Instantiate(player, spawnPoint.transform.position, player.transform.rotation);
}
public void SetDeathCanvasActive(bool activeState) {

View File

@@ -52,16 +52,19 @@ public class TambourineBehavior : MonoBehaviour {
}
void OnTriggerEnter2D(Collider2D col) {
collidedObject = col.gameObject;
if (collidedObject.tag == "Enemy") {
print(col.tag);
if (col.tag == "Enemy") {
collidedObject = col.gameObject;
print("Pinning to enemy");
this.gameObject.GetComponent<CircleCollider2D>().enabled = false;
collidedObject.GetComponent<EnemyPatrol>().pinned = true;
collidedObject.GetComponent<EnemyPatrol>().TogglePin(true);
} else if (collidedObject.tag == "Projectile") {
// print("pinned");
} else if (col.tag == "Projectile") {
collidedObject = col.gameObject;
print("pinned to projectile");
this.gameObject.GetComponent<CircleCollider2D>().enabled = false;
collidedObject.GetComponent<ProjectileBehavior>().Pin();
}
}
}
void OnCollisionEnter2D(Collision2D col) {