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 robbeVL · Apr 07, 2016 at 05:40 PM · raycastraycasthit

My raycast randomly stops working.

Hello everyone.

I'm working on a mobile game where you have to control a traffic intersection. You have to 'swipe' on the cars to boost them and make them cross the intersection. All cars have a touchcollider onto which I cast a ray. The ray ignores all layers but the "touchinput" layer. This all works perfectly, but after a specific event the ray doesn't detect the collider anymore. This happens at random times, only after the specific event and only for a random amount of seconds. After the amount of seconds, it stars working again. I'm using this forum as a last resort because I've tried everything. I've logged and checked everything. The ray returns false and I can't figure out why.

 /// <summary>
     /// This method will execute the beginclick or touch logic
     /// depending on what the player did
     /// </summary>
     private void ExecuteBeginClickOrTouchLogic()
     {
         // Start the swipe timer
         _currentSwipeTime = TimeBetweenSwipe;
 
         // Save begin touch
         _firstPressPos = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
 
         // Raycast down to see if you hit a vehicle and hold it
         Ray screenRay = Camera.main.ScreenPointToRay(_firstPressPos);
         RaycastHit rHit = new RaycastHit();
         if (Physics.Raycast(screenRay, out rHit, 1000.0f, VehicleLayer.value, QueryTriggerInteraction.Collide))
         {
             // If you clicked a vehicle, save the reference to its behaviour
             VehicleBehaviour vb = rHit.collider.GetComponentInParent<VehicleBehaviour>();
             print(Vector3.Distance(Camera.main.transform.position, vb.gameObject.transform.position));
 
             if (vb != null)
             {
                 _vehicleBehaviour = vb;
             }
             else // clean the reference to the previous behaviour
             {
                 _vehicleBehaviour = null;
             }
 
             // If you clicked a pedestrian, save the reference to its behaviour
             PedestrianBehaviour pb = rHit.collider.GetComponentInParent<PedestrianBehaviour>();
             if (pb != null && pb.IsCrossingOver == true)
             {
                 _pedestrianBehaviour = pb;
                 _pedestrianBehaviour.Drag();
             }
             else // clean the reference to the previous behaviour
             {
                 _pedestrianBehaviour = null;
             }
         }
         else // Otherwise clean up both
         {
             _vehicleBehaviour = null;
             _pedestrianBehaviour = null;
         }
     }


Does anyone have an idea?

Thanks in advance.

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 meat5000 ♦ · Apr 07, 2016 at 04:43 PM 0
Share

What happens to your FPS during these times? You should use the profiler.

avatar image robbeVL meat5000 ♦ · Apr 08, 2016 at 11:58 AM 0
Share

FPS stays the same, there are no noticable drops in frames. As I stated in my question, nothing is out of the ordinary it just stops working sometimes.

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

NullReference when checking tag via Raycast. How to solve this? 1 Answer

Raycast exit point of collider 0 Answers

Detect RaycastHit on Character Controller 2 Answers

Problem with raycast vertical 1 Answer

RacastHit object not set to an instance of an object 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