IEnumerator TakeDamage(player_test player, float repeatRate) { while (_isCausingDamage) { player.TakeDamage(DamageAmount); TakeDamage(player, repeatRate); yield return(new WaitForSeconds(repeatRate)); } }
private void OnTriggerExit(Collider other) { //print("exit"); player_test player = other.gameObject.GetComponent <player_test>(); if (player != null) { _isCausingDamage = false; } }
// Update is called once per frame void Update() { //print(player.position); if (player.position.y < -30) { //print("fall"); player.position = new Vector3(player.position.x - 30f, 0.4f, player.position.z - 30f); player_test player1 = player.GetComponent <player_test>(); player1.TakeDamage(DamageAmount); } }
private void OnTriggerEnter(Collider other) { _isCausingDamage = true; player_test player = other.gameObject.GetComponent <player_test>(); if (player != null) { if (Repeating) { StartCoroutine(TakeDamage(player, DamageRepeatRate)); } else { player.TakeDamage(DamageAmount); } } }