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 Trollvahkiin · Sep 20, 2013 at 05:13 PM · aiobstacleavoidance

Follow AI which avoides obstacles

Hey, so I have this AI script where if you get close to the enemy he will start chasing you. The first part which is just simply checking if you're close and chasing you works perfectly. It looks like this.

 var player : Transform; // the Object the player is controlling
 var spawnOrgin : Vector3; // this will be the bottom right corner of a square we will use as the spawn area
 var maximum : Vector3; // max distance in the x, y, and z direction the enemy can spawn
 var spawnRate : float; // how often the enemy will respawn
 var distanceToPlayer : float; // how close the enemy has to be to the player to play music
 var nearPlayer : boolean = false; // use this to stop the teleporting if near the player
 
 var target : Transform; //the enemy's target
 var moveSpeed = 3; //move speed
 var rotationSpeed = 3; //speed of turning
 var myTransform : Transform; //current transform data of this enemy
 var chasing : boolean = false;
 
 private var nextTeleport : float = 0.0f; // will keep track of when we to teleport next
 
 function Awake()
     {
         myTransform = transform; //cache transform data for easy access/preformance
     }
      
 function Start ()
     {
         target = GameObject.FindWithTag("Player").transform; //target the player
         nextTeleport = spawnRate;
     }
      
 function Update ()
 {
     transform.position.y=-6.357718f;
     
     if (!nearPlayer) // only teleport if we are not close to the player
     {
         if (Time.time > nextTeleport) // only teleport if enough time has passed
         {
             transform.position = Vector3( Random.Range(spawnOrgin.x, maximum.x), Random.Range(spawnOrgin.y, maximum.y), Random.Range(spawnOrgin.z, maximum.z) ); // teleport
             nextTeleport += spawnRate; // update the next time to teleport
         }
     }
     if (Vector3.Distance(transform.position, player.position) <= distanceToPlayer)
     {
         if (audio && audio.clip && !audio.isPlaying && renderer.isVisible) // play the audio if it isn't playing
         audio.Play();
         nearPlayer = true;
         chaseIsOn();
     }
     else
     {
         if (audio)
         audio.Stop();
         nearPlayer = false;
     }
     if (chasing)
     {
          myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
 Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
  
 //move towards the player
 myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
     }
 
 }
 
 function chaseIsOn()
 {
     Debug.Log("THE CHASE IS ON");
     chasing = true;
 }
 

But now I'm trying to add obstacle avoidance which is not working so well. I tried adding this simple one from his video. It just doesn't work at all. It gives me errors. Is there any simple way you cans see to add obstacle avoidance into the script. If you see any please do say! thanks.

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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by getyour411 · Sep 20, 2013 at 09:20 PM

The short answer is no, there is not a simple way. One problem is you are manipulating the objects transform property which is notorious for ignoring stuff. You can Google "A* pathfinding", "Unity NavMesh (pro)", "Unity Asset Rain" (free), etc and find Assets and Resources to help but there's no ignore_obstacles=true parameter.

Have a look at this

http://answers.unity3d.com/questions/318428/problems-with-raycast-obstacle-avoidance.html

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

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

15 People are following this question.

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

Related Questions

Unity AI Obstacle Avoidance Help 3 Answers

How can I make an AI that avoids obstacles WITHOUT using NavMesh? 3 Answers

Raycast Steering Problem 1 Answer

Vision cone with obstacles? 2 Answers

A.I. Avoid Light 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