35 lines
772 B
C#
35 lines
772 B
C#
using Sirenix.OdinInspector;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
public class DetectHitComponent : MonoBehaviour
|
|
{
|
|
private static float[] hitMultipliers = new float[] {
|
|
0.5f,
|
|
0.75f,
|
|
1,
|
|
1.25f,
|
|
1.5f,
|
|
2
|
|
};
|
|
|
|
[SerializeField]
|
|
[ValueDropdown("hitMultipliers")]
|
|
private float hitMultiplier;
|
|
|
|
public OnHitEvent onHit;
|
|
|
|
|
|
private void OnCollisionEnter(Collision collision)
|
|
{
|
|
var gameObject = collision.gameObject;
|
|
var damageDealer = gameObject.GetComponent<DamageDealerComponent>();
|
|
|
|
if (damageDealer == null) return;
|
|
|
|
onHit.Invoke(new(damageDealer.damage, hitMultiplier, gameObject));
|
|
}
|
|
}
|