Engine Version:
4.8.2
Steps to reproduce:
- Create new project using Blueprint First Person Template
- Create a new Blueprint based on the Actor class
- Add a new cube component to the Blueprint
- Enable Physics on the cube component
- Set auto receive input from player 0 on the Blueprint
- Add an event to the blueprint for the key “E” to change position (see example)
- Place an instance of the blueprint on the map
At this point, if you play the game, pressing “E” does nothing. If you stop the game. disable physics on the cube component, and restart the game, pressing “E” changes the object’s vertical position as expected. This in and of itself is a bug in my opinion.
The bigger bug though, is that if you disable physics simulation in Blueprint, you STILL cannot set the actor’s position. Repeat the same sets as above, but add a node to “Set Physics Simulation” to false on the cube component.
What appears to be happening is that the actor is being moved, but the physics enabled component isn’t (so the local position is changing, but the world position isn’t). See screenshot:
http://new.tinygrab.com/37897525d4e59a901cb419088ecdeb22e63b7c3495.png
Conditions:
In my effort to ensure I provide as much detail as possible, I’ve been looking into the issue more:
- SetActorLocation works fine if the root component is the component with physics enabled
- SetWorldLocation works fine IF called on the component with physics enabled but then the physics enabled component and root component get out of sync
Blueprint Component Hierarchy:
http://new.tinygrab.com/37897525d4265786567d24450f16384b6d0027fed6.png
Example Blueprint To Change Position:
http://new.tinygrab.com/37897525d40aa4b0e3e934c920fdcdf3c1ec71b792.png
Example Blueprint To Disable Physics Simulation:
http://new.tinygrab.com/37897525d4e68931737b4228c99f06775dfb70083f.png