I need my AI to attack any object who is tagged with a specific tag like let's say "enemies".Can someone help me?.I tryed everything and nothing seems to work.

  1. var distance;
  2. //pe cn urmarim?;
  3. var target : Transform;
  4. //unde dam si unde doare;
  5. var script = “attributes”;
  6. var lookAtDistance = 15.0;
  7. var attackRange = 10.0;
  8. var moveSpeed = 5.0;
  9. var damping = 6.0;
  10. private var isItAttacking = false;
  11. var attackNow : int;
  12. //sa ne ataceee;
  13. var dmg = 0.001;
  14. var dmg1 :int;
  15. var AttackZone=10;
  16. function Update ()
  17. {
  18. distance = Vector3.Distance(target.position, transform.position);
  19. if(distance < lookAtDistance)
  20. {
  21. isItAttacking = false;
  22. renderer.material.color = Color.yellow;
  23. lookAt ();
  24. }
  25. if(distance > lookAtDistance)
  26. {
  27. renderer.material.color = Color.green;
  28. }
  29. if(distance < attackRange)
  30. {
  31. attack ();
  32. }
  33. if(isItAttacking)
  34. {
  35. renderer.material.color = Color.red;
  36. }
  37. //animatia de atac cand este in aria vizuala destinata atacului;
  38. if(distance < AttackZone){
  39. animation.CrossFade(“enemyAttack”);
  40. }
  41. //atacul in sine
  42. if(animation[“enemyAttack”].enabled == true){
  43. attackNow = 1;
  44. }
  45. else
  46. {
  47. attackNow = 0;
  48. }
  49. if(attackNow == 1){
  50. target.GetComponent(script).stats[“currhp”]=target.GetComponent(script).stats[“currhp”] - dmg;
  51. }
  52. }
  53. function lookAt ()
  54. {
  55. var rotation = Quaternion.LookRotation(target.position - transform.position);
  56. transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * damping);
  57. }
  58. function attack ()
  59. {
  60. isItAttacking = true;
  61. renderer.material.color = Color.red;
  62. transform.Translate(Vector3.forward * moveSpeed *Time.deltaTime);
  63. }

You can do it finding playerControll class in other target by using GetComponent() != null

Something like this …

Make sure your player has been tagged as Player, then drag it into the Target in the Inspector window

Hope this helps …

#pragma strict

var Target : Transform; // Drag your player to attack in here
var distance = 30; // Distance
var lookAtDistance = 20; // Distance to keep looking at the player
var attackRange = 10; // Range to start the attack
var attackSpeed = 3.0; // Speed to attack player
var dampingLook = 6.0; // Slow the rotation
   
function Awake()
{
 if(!Target)
 {
 Target = GameObject.FindWithTag("Player").transform; 
 }
}

function Update()
{
 distance = Vector3.Distance(Target.position, transform.position);
 
 if(canAtackTarget())
 {
 var targetRotation = Quaternion.LookRotation(Target.position - transform.position, Vector3.up);
 transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * dampingLook);
 }

 
 if(canAtackTarget() && !attackRange){
 attack();
 }
}

function canAtackTarget()
{
 if(distance > lookAtDistance)
 {
 renderer.material.color = Color.green;
 print("Out of range");
 return false;
 }
 
 if(distance < attackRange)
 {
 renderer.material.color = Color.red;
 print("Attacking");
 attack();
 return true;
 }
 
 var seeYou : RaycastHit;
 
// Check to see if there is anything inbetween enemy and player
 if(Physics.Linecast(transform.position, Target.position, seeYou))
 {
 if(seeYou.collider.gameObject.tag != "Player")
 {
 print("Can not see you " + seeYou.collider.gameObject.name + " in the way");
 renderer.material.color = Color.green;
 return false;
 }
 else
 {
//Player ditected
 renderer.material.color = Color.yellow;
 return true;
 }
 }
 return true;
}

function lookAt()
{
var rotation = Quaternion.LookRotation(Target.position - transform.position, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * dampingLook);
}

function attack()
{
// The Vector3 0.2 stops the object going into the floor
    transform.Translate(Vector3(0, 0.2, 1) * attackSpeed *Time.deltaTime);
}

Just check to see if GameObject.tag = “Enemy” before attacking…