So, I want to decrease the timescale in a select area designated by the player. Everything else around it will move normally, but inside the circle, I want things to move slowly. Can I alter specific gameobjects' timescales in an area?
I could use Physics.OverlapSphere to get all objects in the area, I just don't know how (if) I can apply a slow to them without giving them all their own individual timescale variables.
You can't change an object's individual timescale. I'm afraid you'll have to write your own time-control engine for this.
You could create a collider box defining your area and with an if statement in all the update functions of all the objects concerned(...)you check if they are in and then apply a division to their movement speed. Make sure you divide also the gravity...so that sounds like a lot of work.
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
If you are a new user, check out our FAQ for more information.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
For troubleshooting common problems with Unity 5.x Editor (including Win 10).
To help users post good questions and use the site effectively we have posted a user guide. Please check it out.
Answers and Comments
6 People are following this question.
how to get smooth slow motion?
Altering Fixed Timestep when your game is running to allow for smooth low Timescale animation.
How to return unity back to its normal time scale and fixedDeltaTime
how can i see serial port speed
Script is only working when slowing down timescale