2024-06-16 21:54:47 +02:00
|
|
|
using System;
|
2024-06-13 20:03:23 +02:00
|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
2024-06-16 21:54:47 +02:00
|
|
|
using Unity.VisualScripting;
|
2024-06-13 20:03:23 +02:00
|
|
|
using UnityEngine;
|
|
|
|
|
2024-06-16 13:50:01 +02:00
|
|
|
public class BulletScript : MonoBehaviour
|
2024-06-13 20:03:23 +02:00
|
|
|
{
|
2024-06-14 10:35:34 +02:00
|
|
|
public DataBullet dataBullet;
|
2024-06-27 10:27:18 +02:00
|
|
|
private float damage;
|
|
|
|
private float speed;
|
|
|
|
private int ammo;
|
2024-06-21 11:28:03 +02:00
|
|
|
public GameObject particalClash;
|
2024-06-14 19:08:04 +02:00
|
|
|
public float lifetime = 3f;
|
2024-06-14 10:35:34 +02:00
|
|
|
private Rigidbody rb;
|
2024-06-14 19:08:04 +02:00
|
|
|
private float time = 0f;
|
2024-06-28 11:24:09 +02:00
|
|
|
/// <summary>
|
|
|
|
/// Sobald life Time vorbei ist Destroy die Bullet.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="lifetime">Lifetime der Bullet</param>
|
2024-06-14 19:08:04 +02:00
|
|
|
private void die(float lifetime){
|
|
|
|
if(time > lifetime){
|
|
|
|
GameObject.Destroy(this.gameObject);
|
|
|
|
}
|
|
|
|
}
|
2024-06-28 11:24:09 +02:00
|
|
|
/// <summary>
|
|
|
|
/// clashPartical spawned clashPartical am EinschlagPunkt der Kugel.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="collision">Die Collision mit der Bullet.</param>
|
2024-07-03 12:46:41 +02:00
|
|
|
public void clashParticle(Collision collision){
|
2024-06-21 11:28:03 +02:00
|
|
|
ContactPoint contact = collision.GetContact(0);
|
|
|
|
Instantiate(particalClash,transform.position,Quaternion.LookRotation(contact.normal));
|
2024-06-27 10:27:18 +02:00
|
|
|
}
|
2024-06-28 11:24:09 +02:00
|
|
|
/// <summary>
|
|
|
|
/// Wenn die Bullet etwas behrührt zerstört sie sich selbst.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="collision">Die Collision mit der Bullet</param>
|
2024-06-27 10:27:18 +02:00
|
|
|
private void OnCollisionEnter(Collision collision){
|
|
|
|
Debug.Log(collision.gameObject.name + " UND HIER IST DER TAG: " + collision.gameObject.tag);
|
|
|
|
if(collision.transform.tag == "Enemy"){
|
2024-07-03 12:46:41 +02:00
|
|
|
collision.transform.GetComponent<EnemyHealth>().takeDamage(damage);
|
2024-06-27 10:27:18 +02:00
|
|
|
}
|
2024-07-03 12:46:41 +02:00
|
|
|
clashParticle(collision);
|
2024-06-16 21:54:47 +02:00
|
|
|
GameObject.Destroy(this.gameObject);
|
2024-06-27 10:27:18 +02:00
|
|
|
|
2024-06-16 21:54:47 +02:00
|
|
|
}
|
2024-06-13 20:03:23 +02:00
|
|
|
// Start is called before the first frame update
|
|
|
|
void Start()
|
|
|
|
{
|
2024-06-27 10:27:18 +02:00
|
|
|
damage = dataBullet.damage;
|
|
|
|
ammo = dataBullet.ammo;
|
|
|
|
speed = dataBullet.speed;
|
|
|
|
|
2024-06-14 19:08:04 +02:00
|
|
|
rb = this.GetComponent<Rigidbody>();
|
2024-07-03 12:46:41 +02:00
|
|
|
|
|
|
|
Physics.IgnoreCollision(GetComponent<Collider>(),GameObject.Find("Player").GetComponent<Collider>());
|
2024-06-13 20:03:23 +02:00
|
|
|
}
|
2024-06-16 13:25:46 +02:00
|
|
|
|
2024-06-13 20:03:23 +02:00
|
|
|
|
|
|
|
// Update is called once per frame
|
|
|
|
void Update()
|
|
|
|
{
|
2024-07-03 13:56:17 +02:00
|
|
|
rb.velocity = transform.forward * speed;
|
2024-06-14 19:08:04 +02:00
|
|
|
die(lifetime);
|
|
|
|
time += Time.deltaTime;
|
2024-06-13 20:03:23 +02:00
|
|
|
}
|
|
|
|
}
|