// Use this for initialization void Start() { enemyobject = GameObject.Find ("Box009"); if (enemyobject == null) { Debug.Log ("Cannot find 'Box 009 Controller' script"); } meshRenderer = enemyobject.GetComponent<MeshRenderer> (); bosscontroller = GameObject.Find("Jet").GetComponent<Level1BossController> (); if (bosscontroller == null) { Debug.Log ("Cannot find 'Level1Boss Controller' script"); } //meshRenderer = gameObject.GetComponentInParent<MeshRenderer>(); }
public void Damage(Level1BossController boss) { anim.SetTrigger ("hit"); hp -= boss.damage; playerLight.range -= 8; playerLight.transform.position = new Vector3 (playerLight.transform.position.x, playerLight.transform.position.y, playerLight.transform.position.z + 5); playerLight.color = new Color (playerLight.color.r, playerLight.color.g - 0.1f, playerLight.color.b - 0.1f); playerGlowLight.intensity -= 1; redFlashBegin = true; isHit = true; kickback = true; Vector2 heading = transform.position - boss.transform.position; Vector2 direction = heading / heading.magnitude; StartCoroutine (DamageCoRoutine(direction, boss)); if (hp <= 0) KillPlayer (); }
IEnumerator DamageCoRoutine(Vector2 direction, Level1BossController boss) { yield return null; rb.velocity = new Vector2 (direction.x * 50, isGrounded ? 0 : direction.y * enemyHitVerticalVelocity); yield return new WaitForSeconds (kickbackTime); rb.velocity = new Vector2 (0, rb.velocity.y); kickback = false; yield return new WaitForSeconds (damageDelay - kickbackTime); isHit = false; Debug.Log ("isHit reset"); /*yield return null; yield return new WaitForSeconds (hitKickbackTime); kickback = false; yield return new WaitForSeconds (damageDelay - attackKickback); isHit = false;*/ }