Hi,
As part of the project we are working on, we are manipulating the WorldToMeters value quite heavily. I have the following simple actor blueprint set up:
The “GetDiagonalLength” macro looks like this:
I run this several times, only connecting the “Set World To Meters Scale” node on the second run
Run 1, world to meters NOT CHANGED:
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Apparent world to meters: 100.0
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Diagonal in cm: 399.843903
Run 2, world to meters CHANGED TO 300000:
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Apparent world to meters: 100.0
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Diagonal in cm: 399.843903
Run 3, world to meters NOT CHANGED:
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Apparent world to meters: 100.0
LogBlueprintUserMessages: [WorldToMetersTest_C_0] Diagonal in cm: 1199531.75
As you can see from the outputs, the first two runs give the correct values. The last run gives an incorrect value 3000 times what it should be.
A workaround for this is to add a small delay (even 0.1 seconds will do it), however this isn’t a particularly desirable fix for obvious reasons. Setting the world-to-meters scale back to 100 on End Play doesn’t seem to help at all.
Is there something I’m doing wrong here, or is this a bug?
Thanks