Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by stevesterrr · Jul 24, 2012 at 01:20 PM · aitagsenemies

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. }

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

3 Replies

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Griffo · Jul 26, 2012 at 12:28 PM

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);
 }
Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image stevesterrr · Sep 06, 2012 at 12:59 PM 0
Share

Dude that's awesome sorry for the late replay, the modifications you made to my script are working like a charm.

avatar image
1

Answer by Achilleterzo · Jul 26, 2012 at 11:06 AM

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

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by perchik · Jul 24, 2012 at 06:32 PM

Just check to see if GameObject.tag = "Enemy" before attacking....

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image stevesterrr · Jul 26, 2012 at 09:46 AM 0
Share

already tried that before i posted the question....thx anyway

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

7 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Multiple Cars not working 1 Answer

Need help with javascript AI 1 Answer

Enemy AI problems & Tree problems 0 Answers

How to Respawn Ai Enemies After Destroy Gameobject?? 4 Answers

Argument out of range. 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges