void OnTriggerEnter() { GameObject collided_obj = GetComponent <CompCollider>().GetCollidedObject(); // DAMAGE --- Enemy_BT obj = collided_obj.GetComponent <Enemy_BT>(); if (obj != null) { obj.ApplyDamage(damage); } else { CompCollider obj_col = collided_obj.GetComponent <CompCollider>(); if (obj_col != null) { obj_col.CallOnContact(); } } // DESTROY --- if (collision) { Destroy(gameObject); } }
void OnContact() { CompCollider col = GetComponent <CompCollider>(); GameObject collided_obj = col.GetCollidedObject(); Vector3 point = col.GetContactPoint(); Vector3 normal = col.GetContactNormal(); // DAMAGE --- if (collided_obj != null && destroyed == false) { /* PLAY AUDIO */ GetComponent <CompAudio>().PlayEvent("TheonImpact"); //Lock transform to avoid trespassing more than one collider rb.LockTransform(); // Check the specific enemy in front of you and apply dmg or call object OnContact EnemiesManager enemy_manager = GetLinkedObject("player_enemies_manager").GetComponent <EnemiesManager>(); if (enemy_manager.IsEnemy(collided_obj)) { enemy_manager.ApplyDamage(collided_obj, damage, Enemy_BT.ENEMY_GET_DAMAGE_TYPE.ARROW); if (arrow_blood_particles != null) { arrow_blood_particles.GetComponent <Transform>().SetUpVector(normal); arrow_blood_particles.GetComponent <Transform>().SetPosition(point + normal * 2); CompParticleSystem arrow_particles_script = arrow_blood_particles.GetComponent <CompParticleSystem>(); arrow_particles_script.ActivateEmission(true); } } else { CompCollider obj_col = collided_obj.GetComponent <CompCollider>(); if (obj_col != null) { obj_col.CallOnContact(); } if (arrow_sparks_particles != null) { arrow_sparks_particles.GetComponent <Transform>().SetUpVector(normal); arrow_sparks_particles.GetComponent <Transform>().SetPosition(point + normal * 2); CompParticleSystem wall_particles_script = arrow_sparks_particles.GetComponent <CompParticleSystem>(); wall_particles_script.ActivateEmission(true); } } } if (destroyed == false) { Destroy(gameObject); destroyed = true; } }
void OnContact() { GameObject collided_obj = GetComponent <CompCollider>().GetCollidedObject(); // DAMAGE --- CompCollider obj_col = collided_obj.GetComponent <CompCollider>(); if (obj_col != null) { obj_col.CallOnContact(); } rb.LockTransform(); Destroy(gameObject); }