fgm24/Assets/Scripts/Player/PlayerCollideAttack.cs

30 lines
985 B
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerCollideAttack : MonoBehaviour
{
[SerializeField] Rigidbody2D body;
[SerializeField] LayerMask damageLayers;
[SerializeField] AnimationCurve speedToDamage;
public float speedYouNeedToNotTakeDamageFromRammingOrSomtmh = 10f;
public void OnCollisionEnter2D(Collision2D collision)
{
if (collision.collider.tag != "Enemy") return;
HealthComponent health = collision.collider.gameObject.GetComponent<HealthComponent>();
if (health == null)
health = collision.collider.transform.parent.GetComponent<HealthComponent>();
if (health == null) return;
health = collision.collider.gameObject.GetComponentInChildren<HealthComponent>();
if (health == null) return;
float speed = body.velocity.magnitude;
float damage = speedToDamage.Evaluate(speed);
health.TakeDamage(damage);
}
}