private void OnCharacterEnter(IBSpriteTrigger trigger, Collider collider, Vector3 contact) { CharacterController character = collider.GetComponentInParent <CharacterController>(); _characters.Add(_timers.GetObject().Set(character, Time.time)); Damage(character); }
private void Start() { _trigger = GetComponent <IBSpriteTrigger>(); _trigger.onDetectCharacterEnter = OnCharacterEnter; _trigger.onDetectCharacterExit = OnCharacterExit; _trigger.Enable(); }
protected virtual void OnDetectCharacterEnter(IBSpriteTrigger trigger, Collider detectedCollider, Vector3 contactPosition) { CharacterController character = detectedCollider.GetComponentInParent <CharacterController>(); float distance; float hitDirection = GetHitDirection(contactPosition, characterMotor.transform, out distance); if (attackEffectSettings.doesHit) { character.GetHit(attackEffectSettings.hitVelocityX * hitDirection, attackEffectSettings.hitVelocityY); } if (attackEffectSettings.doesStun) { character.GetStunned(hitDirection * attackEffectSettings.stunAngle, attackEffectSettings.stunTime); } if (attackEffectSettings.doesDamage) { character.GetDamaged(attackEffectSettings.damage); } if (hitEffect) { BurstParticleController particle = hitEffect.Get <BurstParticleController>(); ParticleSystem.MainModule main = particle.ParticleSystem.main; main.startColor = hitEffectColor; particle.transform.position = contactPosition; particle.Burst(); } DamageSoundEffect(contactPosition); if (characterController.CompareTag(TagManager.LOCAL_PLAYER_TAG)) { DisplayPlayerDamageEffect(distance, hitDirection, contactPosition); } DisplayDamageEffect(distance, hitDirection, contactPosition); }
protected override void Awake() { base.Awake(); _ibSpriteTrigger = GetComponent <IBSpriteTrigger>(); _ibSpriteTrigger.onDetectCharacterEnter = OnDetectCharacterEnter; _ibSpriteTrigger.onDetectCharacterExit = OnDetectCharacterExit; }
protected virtual void Awake() { _trailRenderer = GetComponent <TrailRenderer>(); trailSettings.InitRenderer(ref _trailRenderer); _trailRenderer.emitting = false; _ibSpriteTrigger = GetComponent <IBSpriteTrigger>(); _ibSpriteTrigger.Disable(); }
private void OnCharacterExit(IBSpriteTrigger trigger, Collider collider) => Remove(collider.GetComponentInParent <CharacterController>());
protected virtual void OnDetectCharacterExit(IBSpriteTrigger trigger, Collider detectedCollider) { }