Fertiges Game hochgeladen
This commit is contained in:
77
Assets/Scripts/Gegner/Bullet Movement CDM.cs
Normal file
77
Assets/Scripts/Gegner/Bullet Movement CDM.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class Bullet_movement_Enemy : MonoBehaviour
|
||||
{
|
||||
[SerializeField] float dmg = 0.0f;
|
||||
[SerializeField] private float verticalSpeed = 15.0f;
|
||||
public float remainInAir = 1.0f;
|
||||
private float counter = 0f;
|
||||
private Slider slider;
|
||||
private GameObject uiElement;
|
||||
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
||||
slider = FindObjectOfType<Slider>(); //Findet den ersten slider in der scene - hier den Healthbar
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
Movement();
|
||||
}
|
||||
|
||||
private void Movement()
|
||||
{
|
||||
transform.Translate(Vector3.up * Time.deltaTime * verticalSpeed); // bullet geschwindigkeit
|
||||
counter += Time.deltaTime;
|
||||
|
||||
if (counter >= remainInAir)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D other)
|
||||
{
|
||||
if (other.CompareTag("Starship"))
|
||||
{
|
||||
Destroy(gameObject); // berechnet den dmg
|
||||
slider.value -= dmg;
|
||||
}
|
||||
|
||||
if (other.CompareTag("Starship") && slider.value <= 0f) // zerst<73>rt das Starship bei 0hp oder weniger
|
||||
{
|
||||
other.gameObject.GetComponent<OnPlayerDeath>().onDeathUI();
|
||||
Destroy(other.gameObject);
|
||||
|
||||
if(other.gameObject.CompareTag("Dead"))
|
||||
{
|
||||
uiElement.SetActive(true);
|
||||
}
|
||||
if (other.gameObject.CompareTag("Score"))
|
||||
{
|
||||
uiElement.SetActive(false);
|
||||
}
|
||||
if (other.gameObject.CompareTag("Highscore"))
|
||||
{
|
||||
uiElement.SetActive(false);
|
||||
}
|
||||
if (other.gameObject.CompareTag("RoundCounter"))
|
||||
{
|
||||
uiElement.SetActive(false);
|
||||
}
|
||||
if (other.gameObject.CompareTag("EnemiesLeft"))
|
||||
{
|
||||
uiElement.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Gegner/Bullet Movement CDM.cs.meta
Normal file
11
Assets/Scripts/Gegner/Bullet Movement CDM.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 34ed6738e5d4a1f418356839c4de80d8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
67
Assets/Scripts/Gegner/Enemie_Movement.cs
Normal file
67
Assets/Scripts/Gegner/Enemie_Movement.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Enemie_Movement : MonoBehaviour
|
||||
{
|
||||
public float speed = 3f; // Bewegungsgeschwindigkeit
|
||||
public float shootingInterval = 2f; // Schuss-Intervall
|
||||
public int life = 5;
|
||||
public GameObject CDM_Enemy_LASER_bullet; // Projektil-Objekt
|
||||
public Transform firePoint; // Punkt, von dem die Kugeln abgefeuert werden
|
||||
Enemie_Spawn_System enemie_Spawn_System;
|
||||
private Transform player; // Referenz auf den Spieler
|
||||
|
||||
void Start()
|
||||
{
|
||||
// Spieler-Objekt finden
|
||||
player = GameObject.FindGameObjectWithTag("Starship").transform;
|
||||
enemie_Spawn_System = GameObject.Find("Enemie_Spawner_System").GetComponent<Enemie_Spawn_System>();
|
||||
|
||||
// Starte das Schie<69>en in Intervallen
|
||||
InvokeRepeating(nameof(Shoot), shootingInterval, shootingInterval);
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (player == null) return; // Falls kein Spieler gefunden wurde, nichts tun
|
||||
|
||||
// 1. Richtung zum Spieler berechnen
|
||||
Vector2 direction = (player.position - transform.position).normalized;
|
||||
|
||||
// 2. Gegner drehen (damit er den Spieler anvisiert)
|
||||
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
|
||||
transform.rotation = Quaternion.Euler(0, 0, angle - 90);
|
||||
|
||||
// 3. Bewegung zum Spieler
|
||||
transform.position = Vector2.MoveTowards(transform.position, player.position, speed * Time.deltaTime);
|
||||
}
|
||||
|
||||
void Shoot()
|
||||
{
|
||||
if (CDM_Enemy_LASER_bullet != null && firePoint != null)
|
||||
{
|
||||
Instantiate(CDM_Enemy_LASER_bullet, firePoint.position, firePoint.rotation);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D other)
|
||||
{
|
||||
if (other.CompareTag("Player Bullet"))
|
||||
{
|
||||
Bullet_movement bulletScript = other.gameObject.GetComponent<Bullet_movement>();
|
||||
|
||||
if (bulletScript != null)
|
||||
{
|
||||
life--;
|
||||
Debug.Log("Gegner Getroffen! -1");
|
||||
|
||||
if (life <= 0)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
enemie_Spawn_System.ChangeEnemyCounter(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Gegner/Enemie_Movement.cs.meta
Normal file
11
Assets/Scripts/Gegner/Enemie_Movement.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50d5009d91c76fd4ea7a6210a0a958ce
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
76
Assets/Scripts/Gegner/Enemie_Movement_Kamikaze.cs
Normal file
76
Assets/Scripts/Gegner/Enemie_Movement_Kamikaze.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class Enemie_Movement_Kamikaze : MonoBehaviour
|
||||
{
|
||||
public float speed = 3f; // Bewegungsgeschwindigkeit
|
||||
private Transform player; // Referenz auf den Spieler
|
||||
public int life = 2;
|
||||
private Slider slider;
|
||||
public GameObject uiElement;
|
||||
Enemie_Spawn_System enemie_Spawn_System;
|
||||
[SerializeField] float dmg = 0.0f;
|
||||
|
||||
void Start()
|
||||
{
|
||||
// Spieler-Objekt finden
|
||||
player = GameObject.FindGameObjectWithTag("Starship").transform;
|
||||
slider = FindObjectOfType<Slider>();
|
||||
enemie_Spawn_System = GameObject.Find("Enemie_Spawner_System").GetComponent<Enemie_Spawn_System>();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (player == null) return; // Falls kein Spieler gefunden wurde, nichts tun
|
||||
|
||||
// 1. Richtung zum Spieler berechnen
|
||||
Vector2 direction = (player.position - transform.position).normalized;
|
||||
|
||||
// 2. Gegner drehen (damit er den Spieler anvisiert)
|
||||
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
|
||||
transform.rotation = Quaternion.Euler(0, 0, angle - 90);
|
||||
|
||||
// 3. Bewegung zum Spieler
|
||||
transform.position = Vector2.MoveTowards(transform.position, player.position, speed * Time.deltaTime);
|
||||
}
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D other)
|
||||
{
|
||||
if (other.CompareTag("Player Bullet"))
|
||||
{
|
||||
Bullet_movement bulletScript = other.gameObject.GetComponent<Bullet_movement>();
|
||||
|
||||
if (bulletScript != null)
|
||||
{
|
||||
life--;
|
||||
Debug.Log("Gegner Getroffen! -2");
|
||||
|
||||
if (life <= 0)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
enemie_Spawn_System.ChangeEnemyCounter(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (other.CompareTag("Starship"))
|
||||
{
|
||||
Destroy(gameObject);
|
||||
enemie_Spawn_System.ChangeEnemyCounter(-1);
|
||||
slider.value -= dmg;
|
||||
}
|
||||
|
||||
if (other.CompareTag("Starship") && slider.value <= 0f) // zerst<73>rt das Starship bei 0hp oder weniger
|
||||
{
|
||||
Destroy(other.gameObject);
|
||||
//ChangeEnemyCounter(-1);
|
||||
|
||||
if (other.CompareTag("Dead"))
|
||||
{
|
||||
uiElement.SetActive(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/Gegner/Enemie_Movement_Kamikaze.cs.meta
Normal file
11
Assets/Scripts/Gegner/Enemie_Movement_Kamikaze.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c57218c54d536546a8fb5f4f36bd912
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
75
Assets/Scripts/Gegner/Enemie_Movement_Panzer.cs
Normal file
75
Assets/Scripts/Gegner/Enemie_Movement_Panzer.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
|
||||
public class Enemie_Movement_Panzer : MonoBehaviour
|
||||
{
|
||||
public float speed = 3f; // Bewegungsgeschwindigkeit
|
||||
public float shootingInterval = 2f; // Schuss-Intervall
|
||||
public GameObject bulletPrefab; // Projektil-Objekt
|
||||
public Transform firePointA; // Punkt, von dem die Kugeln abgefeuert werden
|
||||
public Transform firePointB;
|
||||
public Transform firePointC;
|
||||
public int life = 20;
|
||||
Enemie_Spawn_System enemie_Spawn_System;
|
||||
|
||||
private Transform player; // Referenz auf den Spieler
|
||||
|
||||
void Start()
|
||||
{
|
||||
// Spieler-Objekt finden
|
||||
player = GameObject.FindGameObjectWithTag("Starship").transform;
|
||||
|
||||
// Starte das Schie<69>en in Intervallen
|
||||
InvokeRepeating(nameof(Shoot), shootingInterval, shootingInterval);
|
||||
enemie_Spawn_System = GameObject.Find("Enemie_Spawner_System").GetComponent<Enemie_Spawn_System>();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
|
||||
if (player == null) return; // Falls kein Spieler gefunden wurde, nichts tun
|
||||
|
||||
// 1. Richtung zum Spieler berechnen
|
||||
Vector2 direction = (player.position - transform.position).normalized;
|
||||
|
||||
// 2. Gegner drehen (damit er den Spieler anvisiert)
|
||||
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
|
||||
transform.rotation = Quaternion.Euler(0, 0, angle - 90);
|
||||
|
||||
// 3. Bewegung zum Spieler
|
||||
transform.position = Vector2.MoveTowards(transform.position, player.position, speed * Time.deltaTime);
|
||||
|
||||
}
|
||||
|
||||
void Shoot()
|
||||
{
|
||||
if (bulletPrefab != null && firePointA != null && firePointB != null && firePointC != null)
|
||||
{
|
||||
Instantiate(bulletPrefab, firePointA.position, firePointA.rotation);
|
||||
Instantiate(bulletPrefab, firePointB.position, firePointB.rotation);
|
||||
Instantiate(bulletPrefab, firePointC.position, firePointC.rotation);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D other)
|
||||
{
|
||||
if (other.CompareTag("Player Bullet"))
|
||||
{
|
||||
Bullet_movement bulletScript = other.gameObject.GetComponent<Bullet_movement>();
|
||||
|
||||
if (bulletScript != null)
|
||||
{
|
||||
life--;
|
||||
Debug.Log("Gegner Getroffen! -2");
|
||||
|
||||
if (life <= 0)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
enemie_Spawn_System.ChangeEnemyCounter(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} //chat gpt modified, nicht komplett generiert
|
11
Assets/Scripts/Gegner/Enemie_Movement_Panzer.cs.meta
Normal file
11
Assets/Scripts/Gegner/Enemie_Movement_Panzer.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 586d848e69270f345b886282bdda8735
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user