//ダメージ public override void Damage(IDamageGenerator damageGenerator) { if (hit) { hit = false; damage = damageGenerator.GetPower(); force = damageGenerator.GetForce(); forceSpeed = damageGenerator.GetForceSpeed(); _life = Mathf.Max(_life - damage, 0); // ライフのUIをUpdate UpdateLifeUI(); // ライフが0でゲームオーバーへ if (_life <= 0) { GameOver(); } // 無敵時間のコルーチンを開始 StartCoroutine("Invincible"); // ノックバック処理 GetComponent <Rigidbody2D>().AddForce(force * 5.0f, ForceMode2D.Impulse); //Debug.Log(life); } }
// Damage(IDamageGenerator, damage) public virtual void Damage(IDamageGenerator damageGenerator, float damage) { force = damageGenerator.GetForce(); forceSpeed = damageGenerator.GetForceSpeed(); _life = Mathf.Max(_life - damage, 0); if (_life <= 0) { Dead(); } //GetComponent<Rigidbody2D>().AddForce(force * 5.0f, ForceMode2D.Impulse); KnockBack(force, forceSpeed); Debug.Log(_life); }
//ダメージ public override void Damage(IDamageGenerator damageGenerator) { damage = damageGenerator.GetPower(); force = damageGenerator.GetForce(); forceSpeed = damageGenerator.GetForceSpeed(); if (battoleMode) { _life = Mathf.Max(_life - damage, 0); if (_life <= 0) { Dead(); } } else { hitCount += damage; } Debug.Log("boss: " + _life); GetComponent <Rigidbody2D> ().AddForce(force * 5.0f, ForceMode2D.Impulse); }