created victory object and level progression

also tried to create a way to launch the game from any scene, but it doesn't really work. don't use anything in the folder called "DEBUG"
This commit is contained in:
Sam
2023-04-30 13:34:02 -07:00
parent 1b809cfa06
commit 16a190949d
40 changed files with 4171 additions and 1889 deletions

View File

@@ -6,6 +6,8 @@ public class ProjectileEnemy : MonoBehaviour {
[SerializeField] GameObject projectile;
[SerializeField] GameObject firePoint;
[SerializeField] [Range(0.1f, 3f)] float fireSpeed;
[SerializeField] float projectileSpeed;
// Start is called before the first frame update
void Start() {
@@ -13,9 +15,9 @@ public class ProjectileEnemy : MonoBehaviour {
}
IEnumerator Fire() {
yield return new WaitForSeconds(3f);
yield return new WaitForSeconds(1/fireSpeed);
GameObject newProjectile = Instantiate(projectile, firePoint.transform.position, firePoint.transform.rotation);
newProjectile.GetComponent<Rigidbody2D>().AddRelativeForce(new Vector2(80, 0));
newProjectile.GetComponent<Rigidbody2D>().AddRelativeForce(new Vector2(projectileSpeed, 0));
newProjectile.transform.Rotate(new Vector3(0,0,-90));
StartCoroutine(Fire());
}

View File

@@ -22,6 +22,9 @@ public class StateController : MonoBehaviour {
[Header("Enemies")]
GameObject[] enemiesInScene;
[Header("LevelProgression")]
GameObject victoryCanvas;
void Awake() {
// check to see if a state controller already exists
if (GameObject.FindGameObjectWithTag("StateController") != null) {
@@ -33,7 +36,7 @@ public class StateController : MonoBehaviour {
SceneManager.sceneLoaded += OnSceneLoaded;
if (inDebugMode) {
debugCanvas = GameObject.Find("DebugCanvas");
debugCanvas = GameObject.FindGameObjectWithTag("DebugCanvas");
debugCanvas.SetActive(false);
}
}
@@ -53,6 +56,13 @@ public class StateController : MonoBehaviour {
TogglePauseMenu(false);
}
victoryCanvas = GameObject.Find("VictoryCanvas");
if (victoryCanvas != null) {
Button continueButton = GameObject.Find("ContinueButton").GetComponent<Button>();
continueButton.onClick.AddListener(ContinueToNextLevel);
victoryCanvas.SetActive(false);
}
// keep track of all enemies
enemiesInScene = GameObject.FindGameObjectsWithTag("Enemy");
// print(enemiesInScene);
@@ -107,4 +117,12 @@ public class StateController : MonoBehaviour {
public void SetDeathCanvasActive(bool activeState) {
deathCanvas.SetActive(activeState);
}
public void ShowVictoryCanvas() {
victoryCanvas.SetActive(true);
}
public void ContinueToNextLevel() {
GameObject.FindGameObjectWithTag("SceneManager").GetComponent<SceneController>().NextScene();
}
}

View File

@@ -0,0 +1,30 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VictoryObjectBehavior : MonoBehaviour
{
public float height = 1f;
public float speed = 1f;
Vector2 initPosition;
void Awake() {
initPosition = this.transform.position;
}
// Update is called once per frame
void Update()
{
transform.position = new Vector2(initPosition.x, initPosition.y + Mathf.Sin(Time.time * speed) * height);
}
void OnDrawGizmos() {
Gizmos.DrawLine(new Vector3(transform.position.x, transform.position.y - height, transform.position.z), new Vector3(transform.position.x, transform.position.y + height, transform.position.z));
}
void OnTriggerEnter2D(Collider2D col) {
if (col.tag == "Player") {
GameObject.FindGameObjectWithTag("StateController").GetComponent<StateController>().ShowVictoryCanvas();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a22e1f323783642f398cdf2ed3adcafa
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: