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
1
Question by Raphael · Feb 11, 2010 at 01:23 PM · raycast

racing game raycast problem

Hi all,

In my racing game, the AI of the opponents follow waypoints along the track, but i'm having problems when they get closer to each other and begin to crash. So i came up with the idea to use raycast to see if there is any car between this car and the next waypoint or in the Vector3.forward and slow down a bit so they don't crash.

RaycastHit hit;

 if (carCollider.Raycast(new Ray(carCollider.transform.position, Vector3.forward), out hit,4000.0f))
 {
     Debug.Log("raycast at "+hit.transform.name);
     if (hit.transform.tag == "car" || hit.transform.tag == "Player")
     {
         Debug.Log("There's a car ahead: "+hit.transform.name);
     }
 }

With this code, nothing is being logged by the debugger. What am i missing ? Call cars have colliders and are tagged 'car' or 'Player'. Any idea what's happening or an alternative so they wont bump on each other ?

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
2
Best Answer

Answer by duck · Feb 11, 2010 at 01:32 PM

I think the problem is that you're calling 'Raycast' on your carCollider. This means that the raycast would only detect your own car's collider. Since the ray is starting inside that collider, it won't detect it at all.

You're using this version of raycast: Collider.Raycast

When I think instead you probably want: Physics.Raycast (which detects collisions against every collider in the scene, not just the collider on which it was called).

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
1

Answer by efge · Feb 11, 2010 at 02:32 PM

Instead of asking the physics engine you could calculate the distance between the AI cars.
Reference + Example

Or use sphere colliders for each AI car as triggers for slowing down.

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 Raphael · Feb 11, 2010 at 03:13 PM 0
Share

Interesting approach, but i was wondering if i put two parallels raycasts (left and right side of the car) i could decide if i brake, turn right or left. $$anonymous$$aybe i'm not following the best approach, but i dont see how those two suggestions can handle what i want. But thanks 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

No one has followed this question yet.

Related Questions

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

Have to press Fire1 button twice to run if statement? 1 Answer

Using different paricle emitters depending on the tag of the object raycast hits? 1 Answer

Contextual Rose Menu not determining correct context. 2 Answers

Help with key code!! 0 Answers


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