blob: a452de001edf714514f2e4d2b6d9924669dfa96a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
using System;
using UnityEngine;
using UnityEngine.Events;
public class AttackTrigger : MonoBehaviour
{
public bool triggerOnEveryShot = true;
public UnityEvent triggerEvent;
private CharacterData data;
private void Start()
{
data = GetComponentInParent<CharacterData>();
Gun gun = data.weaponHandler.gun;
gun.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(gun.ShootPojectileAction, new Action<GameObject>(Shoot));
data.weaponHandler.gun.AddAttackAction(Attack);
}
private void OnDestroy()
{
Gun gun = data.weaponHandler.gun;
gun.ShootPojectileAction = (Action<GameObject>)Delegate.Remove(gun.ShootPojectileAction, new Action<GameObject>(Shoot));
data.weaponHandler.gun.RemoveAttackAction(Attack);
}
public void Attack()
{
if (!triggerOnEveryShot)
{
triggerEvent.Invoke();
}
}
public void Shoot(GameObject projectile)
{
if (triggerOnEveryShot)
{
triggerEvent.Invoke();
}
}
}
|