Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 Armadillq · Jun 13, 2018 at 02:28 AM · movementairandomdriving

Creating a random movement script for multiple AI drivers

Im trying to create a script that make it so that after a random amount of time a AI driver turns either left or right. I'm having trouble finding a way to make it so that through the same script multiple different gameObjects ( The Drivers ) will follow the script at different times or in a different way so that they are not all turning at the same time at the same speed etc.

Currently this is the script I wrote and i've been working with...

 public class AIDriving : MonoBehaviour {
 
     public GameObject car;
     public Rigidbody rb;
     public Transform tr;
     public float topSpeed = 25f;
     public float speed = 15f;
     public float turnTime = 5f;
 
     void Start() {
 
     }
 
 
     void FixedUpdate() {
         if (rb.velocity.magnitude > topSpeed)
         {
             rb.drag = 10 * Time.deltaTime;
         }
         rb.AddForce(tr.forward * Random.Range(13, 16));
         RaycastHit hit;
         if (Physics.Raycast(tr.position, tr.forward, out hit))
         {
             topSpeed = 100f;
             speed = 17f;
         }
         else
         {
             topSpeed = 25f;
             speed = Random.Range(13, 16);
         }
         if (Random.Range(1,15) > 5)
         {
             StartCoroutine( AITurn() );
         }
     }
     IEnumerator AITurn()
     {
         float turnSpeed = 3;
         rb.AddForce(-tr.right * turnSpeed);
         yield return new WaitForSeconds(1);
         rb.AddForce(tr.right * turnSpeed);
         yield return new WaitForSeconds(2);
         rb.angularVelocity = Vector3.zero;
         rb.AddForce(tr.right * turnSpeed);
         yield return new WaitForSeconds(1);
         rb.AddForce(-tr.right * turnSpeed);
         rb.angularVelocity = Vector3.zero;
 
 
 
 
     }
 }

IF YOU HAVE ANY SOLUTIONS TO MAKING THE DIFFERENT OBJECTS RUN THE TURNING PROCESS AT DIFFERENT TIMES IT WOULD BE GREATLY APPRECIATED, Thanks in advance!

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

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Matteo_Err · Jan 25, 2021 at 05:35 PM

Hello, Maybe it's a bit late but I think you can change this : float turnSpeed = 3; rb.AddForce(-tr.right * turnSpeed); yield return new WaitForSeconds(1); rb.AddForce(tr.right * turnSpeed); yield return new WaitForSeconds(2); rb.angularVelocity = Vector3.zero; rb.AddForce(tr.right * turnSpeed); yield return new WaitForSeconds(1); rb.AddForce(-tr.right * turnSpeed); rb.angularVelocity = Vector3.zero; To something like this float turnSpeed = 3; rb.AddForce(-tr.right * turnSpeed); yield return new WaitForSeconds(Random.Range(0.5f, 1.5f)); rb.AddForce(tr.right * turnSpeed); yield return new WaitForSeconds(Random.Range(1f, 2f)); rb.angularVelocity = Vector3.zero; rb.AddForce(tr.right * turnSpeed); yield return new WaitForSeconds(Random.Range(0.5f, 1.5f)); rb.AddForce(-tr.right * turnSpeed); rb.angularVelocity = Vector3.zero;,

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 WakingDragon · Jan 24, 2021 at 01:57 PM

I have used "hares" (like in dog racing) - the hares run round the track in the center of the road. The drivers essentially follow the hares but you can tweak things like how quickly they react to a change in direction. This is very simple to put in place and is kind of like old fashioned mechanical games ;)

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

187 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 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 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 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 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 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 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 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 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 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 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 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Racing Ai? long read 1 Answer

Random Movement Problem 1 Answer

AI repeats movement and isnt randomised 0 Answers

Random direction with Mouse Click... 2 Answers

2D Random AI 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