20-08-2019, 07:25 PM
(This post was last modified: 20-08-2019, 07:32 PM by josemendez.)
(20-08-2019, 06:53 PM)Smurfj3 Wrote: Hello thanks for the quick reply, yes I am aware that profiling is the way to go but that's the reason for my post, I should have been more clear though. I can see that ObiSolver.FixedUpdate() and ObiSolver.LateUpdate() are both using a lot and causing huge fps drops. I made some screenshots from 2 different frames that show the exact function that is causing the issue.
I did not know about the "well of despair/death spiral" thing, maybe thats because I am still somewhat new to unity.
Thanks a lot,
Jeffrey
From the profiler pics, I can tell two things:
- Rope rendering is taking up too much time. If you're using the extruded rope renderer, try using a less dense rope section asset, maybe 4 or 5 segments are enough instead of the default 8. You can also use the LineRenderer instead, as it is much cheaper than the extruded one. See: http://obi.virtualmethodstudio.com/tutor...modes.html
- Your scene has a bad case of death spiralling. FixedUpdate() is being called 5 times per frame (see the "calls" column in the profiler), ideally it would be called only once. Good news is things can run at least 5 times faster than they currently are. Try lowering Unity's max fixed timestep, to a small multiple of the fixed timestep (if fixed timestep is set to 0.02, use a max of 0.04 for instance). You can find these settings in the Time Manager: https://docs.unity3d.com/Manual/class-TimeManager.html
Death spiralling can take place in any fixed-timestep engine, not just Unity. So if you're making games where physics play an important role, it is crucial you understand what it is and why it happens, as it can very easily kill your performance.