private void Start() { var damage = new ColorDamage(damageValue, invincibleTime, this); this.OnCollisionEnter2DAsObservable() .Select(x => x.collider.GetComponent <Player>()) .Where(x => x != null) .ThrottleFirst(TimeSpan.FromSeconds(1f)) .Subscribe(x => x.ApplyDamage(damage)) .AddTo(this); }
protected override void OnAttack(Collider2D collider2D) { var player = collider2D.GetComponent <Player>(); if (player != null) { return; } var enemy = collider2D.GetComponent <Enemy>(); if (enemy != null) { var damage = new ColorDamage(base.damageValue, base.invincibleTime, base.color); enemy.ApplyDamage(damage); } Destroy(this.gameObject); }