public override void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.GetComponent <Enemy.Enemy>() != null) { //If Collided with Enemy Unit //Reduce Enemy HP (currently no function for that) Enemy.Enemy enemy = other.gameObject.GetComponent <Enemy.Enemy>(); if (prevTarget && enemy != prevTarget) { enemy.Injure(Damage); prevTarget = enemy; } else { prevTarget = enemy; } } else if (other.gameObject.GetComponent <RPGPlayer>() != null) { // Collision handled by player } else if (other.gameObject.GetComponent <Projectile>() != null) { // Do not allow collisions with self return; } else { Disable(); } }
// Update is called once per frame protected override void Update() { if (target) { // Move towards target transform.position = Vector3.MoveTowards(transform.position, target.transform.position, Speed * (float)TimeManager.GetDeltaTime(TimeManager.TimeType.Game)); if (transform.position == target.transform.position) { // Projectile on target //Reduce Enemy HP (currently no function for that) // Find new target if (prevTarget && target != prevTarget) { target.Injure(Damage); prevTarget = target; target = findNearestEnemy(); if (!target) { // No new target found Disable(); } } else if (!prevTarget) { target.Injure(Damage); prevTarget = target; // No previous target target = findNearestEnemy(); if (!target) { // No new target found Disable(); } } } } else { base.Update(); } }
public virtual void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.GetComponent <Enemy.Enemy>() != null) { //If Collided with Enemy Unit //Reduce Enemy HP (currently no function for that) Enemy.Enemy enemy = collision.gameObject.GetComponent <Enemy.Enemy>(); enemy.Injure(Damage); } }
/* * FUNCTION: OnCollisionEnter2D * params: Collision2D collision * * brief: Perform Collision functions */ public virtual void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.GetComponent <Enemy.Enemy>() != null) { //If Collided with Enemy Unit //Reduce Enemy HP (currently no function for that) Enemy.Enemy enemy = collision.gameObject.GetComponent <Enemy.Enemy>(); enemy.Injure(Damage); Disable(); } else if (collision.gameObject.GetComponent <RPGPlayer>() != null) { // Collision handled by player } else if (collision.gameObject.GetComponent <Projectile>() != null) { // Do not allow collisions with self return; } else { Disable(); } }