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 /
  • Help Room /
avatar image
0
Question by Rutherfordio · Feb 14, 2017 at 03:51 AM · raycastframerate drops

Replacement for Raycast / FPS drops problem

Well, I have an extremely simple game, with blocks and a character that hits them and destroys the block. I use Raycast to find the blocks, like this (raycastOrigin is a transform right in front of the character): if (Physics.Raycast(raycastOrigin.position, raycastOrigin.forward, out hit, range, blocksLayer)) {...}

While I'm hitting blocks the fps drops a lot, and on the profiler window Active Rigidbodies and Number of Contacts were really high, so I supposed the problems were with Raycasts, since I just learned they are really expensive.

I tried to do some things (read below) and it got just a little better, but fps is still dropping too much, as you can see here: http://imgur.com/7Ew3vGy.

What I did: I put all the blocks that can be hit in a single layer and I start coroutines to make the raycasts and deal with collisions. I tried other things like changing Update to FixedUpdate, but no changes.

I don't know what to do now, I started to learn about Unity recently and don't have the necessary knowledge to handle this properly. Is there a way to fix my problem or to use a replacement for Raycast that doesn't make fps drop?

My actual code where I am Raycasting:

 void Update () {

     time = time + Time.deltaTime;

     if (Input.GetButton("Fire1") && time > nextFire)
     {
         nextFire = time + fireDelta;

         StartCoroutine(FindBlockRaycasting());

         nextFire = nextFire - time;
         time = 0.0F;
     }
 }

 private IEnumerator FindBlockRaycasting()
 {
     if (Physics.Raycast(raycastOrigin.position, raycastOrigin.forward, out hit, range, blocksLayer))
     {
         target = hit.collider.gameObject;
         warn = target.tag;
         if (target.tag == "Destroyable")
         {
             animator.Play("HitWithArm", -1, 0F);
             target.GetComponent<DestroyWhenHit>().GetHit();
         }
     }

     yield return new WaitForSeconds(0);
     }


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

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

115 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

Related Questions

Error CS165 after Update 1 Answer

wall check is always returning true even though the distance doesn't fit my parameters :( 1 Answer

Making a portal inspired game - Need help! 0 Answers

Plane is blocked all Raycast 0 Answers

RayCast not working , why ??? 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