// Start is called before the first frame update void Start() { player = gameManager.player; maxHealth = player.maxHealth; lastHealth = player.currentHealth; GenerateHearths(); }
protected virtual void Start() { base.Start(); player = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerKnightController>(); target = player.transform; isReadyToAtack = true; agent = GetComponent <NavMeshAgent>(); agent.updateRotation = false; agent.updateUpAxis = false; agent.speed = speed; }
public void DoAttackMelee() { if (isReadyToAtack) { isReadyToAtack = false; doAtk = true; lastTargetPosition = target.position; Vector2 dir = lastTargetPosition - transform.position; Debug.DrawRay(transform.position, dir, Color.red, 2f); int layer = 1 << 10; RaycastHit2D hit = Physics2D.Raycast(transform.position, dir, 1, layer); if (hit) { if (hit.collider.tag == "Player") { PlayerKnightController player = hit.transform.GetComponent <PlayerKnightController>(); player.RecieveDamage(atkDamage); } } } }
public void DoExplosion() { if (isReadyToAtack) { isReadyToAtack = false; doAtk = true; lastTargetPosition = target.position; Vector2 dir = lastTargetPosition - transform.position; int layer = 1 << 10; RaycastHit2D hit = Physics2D.CircleCast(transform.position, explosionRadius, dir, explosionRadius, layer); if (hit) { if (hit.collider.tag == "Player") { PlayerKnightController player = hit.transform.GetComponent <PlayerKnightController>(); player.RecieveDamage(atkDamage); } } myAnimator.SetTrigger("Explosion"); audioSource.PlayOneShot(explosionClip); } }