Well i did as i promised and had a “Ben” moment of i’ll refactor it later and then No lets do it now.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
[Tooltip("FX Prefab on Player")] [SerializeField] GameObject enemyDeathFX;
[SerializeField] Transform parent;
// Use this for initialization
void Start ()
{
AddNonTriggerBoxCollider();
}
void AddNonTriggerBoxCollider()
{
AddColliderWarrior();
AddColliderDrone();
}
private void AddColliderDrone()
{
if (gameObject.tag == "PA_Drone")
{
if (gameObject.AddComponent<BoxCollider>() == null)
{
Collider boxCollider = gameObject.AddComponent<BoxCollider>();
boxCollider.isTrigger = false;
BoxCollider b = GetComponent<BoxCollider>();
if (b != null)
{
b.size = new Vector3(0.75f, 0.25f, 0.75f);
}
}
else
{
Collider boxCollider = GetComponent<BoxCollider>();
boxCollider.isTrigger = false;
BoxCollider b = GetComponent<BoxCollider>();
if (b != null)
{
b.size = new Vector3(0.75f, 0.25f, 0.75f);
}
}
}
}
private void AddColliderWarrior()
{
if (gameObject.tag == "PA_Warrior")
{
if (gameObject.AddComponent<BoxCollider>() == null)
{
Collider boxCollider = gameObject.AddComponent<BoxCollider>();
boxCollider.isTrigger = false;
BoxCollider b = GetComponent<BoxCollider>();
if (b != null)
{
b.size = new Vector3(0.75f, 0.25f, 0.75f);
b.center = new Vector3(0f, 0.25f, 0f);
}
}
else
{
Collider boxCollider = GetComponent<BoxCollider>();
boxCollider.isTrigger = false;
BoxCollider b = GetComponent<BoxCollider>();
if (b != null)
{
b.size = new Vector3(0.75f, 0.25f, 0.75f);
b.center = new Vector3(0f, 0.25f, 0f);
}
}
}
}
void OnParticleCollision(GameObject other)
{
GameObject fx = Instantiate(enemyDeathFX, transform.position, Quaternion.identity);
fx.transform.parent = parent;
Destroy(gameObject);
}
}