By Design. I can see that this is confusing, but it is expected at the moment, and I'm not sure of a good way to fix it. The physical material is stored on the collision body, so when you change the PhysicalMaterial on the MID, the body needs to be updated. Unfortunately we don't have a mapping of all bodies using a particular MID, and updating all of them could be very expensive. The best workaround is probably to call SetMaterial again on the afftected component, which will update the collision info. Or you could manually query the material and then physical material on the object, rather than using info from the HitInfo.
Line Traces are not correctly returning the Physical Material Info when that information is changed at runtime via a Override Physical Material or a Set Physical Material via a Dynamic Material Instance.
Also Reproduced in 4.11 Preview 1 and Dev-Rendering CL-2822902
*Quick Reproduction - PIE Attached Project, Press K to change MID Physical Material, Press L to run a check based on call to MID directly, Press J to run a check based on Line Trace*
RESULTS: When running a check calling the Physical Material directly, the results are always correct, but when running a line trace the Physical Material returned is always incorrect.
EXPECTED: Physical Material returned is always correct.
Head over to the existing Questions & Answers thread and let us know what's up.
0 |
Component | UE - Simulation - Physics |
---|---|
Affects Versions | 4.10.1, 4.11, 4.12 |
Created | Jan 11, 2016 |
---|---|
Resolved | Jan 12, 2016 |
Updated | Jul 14, 2021 |