- Home /
Enemy AI won't attack the player!
Here the problem now, I make the enemy attack target as object with the tag of "Player". But now, when it got near to the player, it said my player health script is an null objects! I need help on this. here is my code,
using UnityEngine;
using System.Collections;
public class EnemyAttack : MonoBehaviour {
public GameObject target;
public float attackTimer;
public float coolDown;
// Use this for initialization
void Start () {
target = GameObject.FindGameObjectWithTag("Player");
attackTimer = 0;
coolDown = 5.0f;
}
// Update is called once per frame
void Update () {
if(attackTimer > 0)
attackTimer -= Time.deltaTime;
if(attackTimer < 0)
attackTimer = 0;
if(attackTimer == 0){
Attack();
attackTimer = coolDown;
}
}
private void Attack(){
float distance = Vector3.Distance(target.transform.position, transform.position);
Vector3 dir = (target.transform.position - transform.position).normalized;
float direction = Vector3.Dot(dir, transform.forward);
if(distance <= 2)
{
if(direction > 0)
{
PlayerHealth ph = (PlayerHealth)target.GetComponent("PlayerHealth");
ph.AdjustCurrentHealth(-10);
}
}
}
}
Please and thanks you!
Answer by MattG · Dec 28, 2012 at 05:25 AM
I find that GetComponent< PlayerHealth >() (ignore the spaces, can't post greather than, less than signs it seams)works better for me in my scripts. Then you don't need to cast the object returned.
I would also say that the PlayerHealth script may not be attached to the player? You would get a compile error for that one though.
Did you try...
PlayerHealth ph = target.GetComponent< PlayerHealth >();
(remove the spaces inside the < > brackets)
Answer by deltamish · Dec 28, 2012 at 02:03 AM
Hi,Have you attached the PlayerHealth script to the object tagged player and the method you are trying to get component is not so correct simply change
from
PlayerHealth ph = (PlayerHealth)target.GetComponent("PlayerHealth");
to
PlayerHealth ph = target.GetComponent<PlayerHealth>();
Your answer
![](https://koobas.hobune.stream/wayback/20220613090011im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Distribute terrain in zones 3 Answers
Multiple Cars not working 1 Answer
Problem with mobs 0 Answers
Make player not be seen by AI, when player in foilage and shadows. 1 Answer
How to load prefabs into array 2 Answers