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 Ethanbf3 · Mar 07, 2013 at 12:53 PM · raycastmoverobot

How to get a ai to drive to a raycast

I am making a script for a AI vehicle (Robot)to follow (drive, goto) the hit of a raycast Think of it as toying with a dog with a laser. You point laser = dog follows laser.

I think this sort of script is used. var speed : float = 0.6; speed * Time.deltaTime but im missing something... Im guessing its along these lines... var bot : GameObject; //The robot that must follow the raycast var speed : float = 0.6 //Speed of the robot bot.transform.position, speed * Time.deltaTime =(Hit.point);

So heres my current script.

 var bot : GameObject; //The robot that must follow the raycast
 var Range : float; // Range of the raycast
 var mesh : GameObject; //Cammea the raycast comes from
 
 var Hit : RaycastHit; //Impact of the raycast the robot must follow
 
 var speed : float = 0.6; //Speed of the robot
 
 //References of how i learnt about raycasting
 //http://answers.unity3d.com/questions/15761/click-on-terrain-and-record-vector3-location-i-cli.html
 //http://www.youtube.com/watch?v=cZsG4dfCUec
 //http://www.youtube.com/watch?v=-F_w3RDRbN4
 
 function Update () {
 if(Input.GetMouseButtonUp(1))
 
 var Directionofline : Vector3 = mesh.transform.TransformDirection(Vector3.forward);
 
     Debug.DrawRay( mesh.transform.position, Directionofline * Range, Color.yellow); //Raycast in visual
            
         if(Physics.Raycast( mesh.transform.position, Directionofline, Hit, Range)){
         
                 if( Hit.collider.gameObject){
             
                     bot.transform.position, speed * Time.deltaTime =(Hit.point); //The final result of the script
 
                     Debug.LogWarning("Potatoes!"); //Success the script works!
                     }
                     }
                     }

All scripts above are attached to the player camera (Camera.main)

Im not sure if i should attach the movement script to the raycast script or on the robot it self (which is currently a cube with ridgid body) as the beginings of the script is on the raycast.

Also if you can provide something for turning the robot instead of sidestep, that would be cool!

I'd basicly like it to move like a tank.

Edit: Ok clearly i didnt explain it well enough. The aim is to get the 'bot' variable to move (as in character move) to the point the raycast has hit, which is done. So what do i do here?

bot.transform.position, speed * Time.deltaTime = (Hit.point)

Comment
Add comment · Show 2
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 AlucardJay · Mar 07, 2013 at 01:37 PM 0
Share

I have only glanced at your script, but the first thing that stands out is line 25 :

 bot.transform.position, speed * Time.deltaTime =(Hit.point); //The final result of the script

this is incorrect. I have no idea what you are trying to do with the hit information. All I can assume is that you meant :

 bot.transform.position += Directionofline * speed * Time.deltaTime;

Hopefully someone else will give this a better read than I did. Good Luck.

avatar image Ethanbf3 · Mar 07, 2013 at 02:40 PM 0
Share
 = (Hit.point);

is the destination where the robot needs to go to in world cordonates

0 Replies

· Add your reply
  • Sort: 

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

11 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

Related Questions

How to get a ai to drive to a raycast 0 Answers

Use OnTriggerEnter during a transform ! 0 Answers

Raycast when swipe or touchphase move 0 Answers

Why is this Raycast not working ? 3 Answers

Set Quaternion to another Quaternion, but oriented along 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