It appears that FSlateApplication::OnControllerAnalog triggers a left mouse click to occur on mobile platforms. If developers haven't properly avoided hooking up delegates to the InputComponent for mouse, then this can cause issues (in the case of FirstPersonShooter, the OnFire method is called).
1. Create a new C++ project based on first person shooter.
2. Create an new Action Key Binding called "CallSlate".
3. In the FirstPersonCharacter class, add the following method:
4. In the SetupInputPlayerComponent, comment the following lines.
5. Modify the FirstPerson.Build.cs file to include slate dependencies:
6. Recompile the code.
7. Back in the editor, select one of the StaticMeshActor cubes and add a Blueprint to it. See the below Blueprint (where MyProjectCharacter == FirstPersonCharacter).
8. Play in a Mobile Preview editor.
9. Move to the cube and click.
Expected: Nothing interesting happens.
Actual: AFirstPersonCharacter::OnFire is called. (This may take a few attempts to correctly align the mouse).
There's no existing public thread on this issue, so head over toAnswerHub just mention UE-31628 in the post.