- Home /
Problems with enemy attack script!
I'm trying to make an enemy attack script but keep failing. No methods work, I've tried invokeRepeating, but that wont work properly because I need to be checked constantly, just normal Time.deltaTime doesnt work because it just subtracts 1 every whatever, and I've tried Corountine and waitForSeconds thing, still doesn't work, here is what I have, and the problem with this is that it subtracts all health in like 1 second, instead of subracting a certain amount of health every couple seconds. AND the OnTriggerStay doesnt work either, it suppose to do attack fun the player enters a range. #pragma strict
var enemyDamage : int;
var enemyAttackSpeed : float;
var attackState : boolean = false;
var Player : GameObject;
function Start () {
Player = GameObject.FindGameObjectWithTag("Player");
StartCoroutine("DamagePlayer");
}
function Update () {
if(attackState == true){
DamagePlayer();
}
}
function OnTrggerStay (other : Collider){
if(other.gameObject.name == "Player"){
attackState = true;
}
}
function DamagePlayer () {
do{
Player.GetComponent(Stats).curHealth -= enemyDamage;
yield WaitForSeconds(enemyAttackSpeed);
}while (attackState == true);
}
what have you set enemyAttackSpeed
to?
also, it's a good idea to get other components referenced a lot and store them at the beginning. add the following to Start()
playerStats = Player.GetComponent(Stats);
and use that in DamagePlayer()
so it looks like this in the third line:
playerStats.curHealth -= enemyDamage;
remember to declare it at the top - something like:
var playerStats : Stats;
EDIT: also, are you ever setting attackState
to false
?
Your answer
Follow this Question
Related Questions
How do I hurt enemies by jumping on them without getting killed? 1 Answer
auto select enemys 3 Answers
Null reference exception on raycast collider hit? Targetter vs Moving Player 1 Answer
How can i make a projectile attack travel through multiple enemies dealing damage to all of them? 1 Answer
Weapon and enemy health 0 Answers