Sorry for the delayed response, I was having hard time finding time to study the Time- class.
The fact that deltaTime returns the correct delta in FixedUpdate too was news to me, I did test it and it does infact return fixedDeltaTime in moderate load.
I did a mistake too in my response.
Even if you adjust fixedDeltaTime the objects speed will remain relative to the scaled 'UnityTime', that is the reason you multiply with delta in the firstplace
It actually is very important to adjust fixedDeltaTime with timeScale because unlike Update which will remain roughly at Application.targetFrameRate independent of timeScale, FixedUpdate (and apparently physics + other fixed framerate updates) takes its framerate from fixedDeltaTime thus is affected in actual calls in real time.
This means the when you increase timeScale, FixedUpdate will be called more often resulting in increased CPU load and when timeScale is lowered you will suffer from decreased accuracy in physics.
This will keep the fixed framerate at 50fps in realtime and will also result in fixedDeltaTime = 0 when timeScale = 0
As I was studying the Time- class I made a small chart of some of the properties, Id like to share this with you:
|unscaledTime||time||Time from start of the game to the start of current frame|
|fixedUnscaledTime||fixedTime||Time from start of the game to the start of current physics frame|
|unscaledDeltaTime||deltaTime||The completion time in seconds since the last frame (Read Only).|
|fixedUnscaledDeltaTime||fixedDeltaTime||The interval in seconds at which physics and other fixed frame rate updates (like MonoBehaviour's FixedUpdate) are performed.|
I also made a test project(realy quick & dirty) to verify assumptions, I'll share the video but unfortunately I don't have time to go in to any details, youll have to figure it out or ask and I'll answer
Edit: Forgot to mention/ask.
In my testproject the Cubes are moved with transform.Translate. Called from Update the Cube moves at different speed compared to FixedUpdate.
What is the cause of this? Rounding thing/something with floatingpoints? Is it something to do with when the actual Translate- methdod gets excecuted?