Box Collision BP component doesn't register touches anymore in 4.14

I upgraded my project to 4.14 from 4.13 and I’m noticing that my Box Collisions no longer detect touches in when using On Input Touch Begin/End.

They work fine using On Input Touch Begin/End in PIE but once compiled into an APK and pushed to Android they do not. This problem doesn’t exist in 4.13.x.

Orthographic camera.

Hello Distul,

I’ve tested this in both 4.13.2 and 4.14.0 binary versions and I’m not currently seeing any differences. I’ll list how I set up my test case and what I tried so that you can see if there are any discrepancies.

  1. Created a new Blueprint project based off of the Top Down template
  2. Created a new Blueprint based off of Actor
  3. Added a Box Collision, set it as the root, and added a Static Mesh component (for visual representation)
  4. Set the Static Mesh to use the 1M_Cube asset from the template and set the Box Extents of the Box Collision to 51, 51, 51 to ensure it was larger than the mesh
  5. Set up the OnInputTouchBegin and End events to trigger a Print String node
  6. Changed the collision settings of the Box Collision to block the Visibility channel as the touch input doesn’t work otherwise, this behavior is the same between 4.13 and 4.14.
  7. Placed the blueprint in the level

After that, I tried PIE, launching onto the android device (Nexus 5 for clarity), packaging to ETC 1 and installing it on the device, and also tried this with the camera set to Orthographic but saw no difference. The event was triggered in all cases. Can you try going over this and seeing if there is anything you’re doing differently? Can you try this setup to see if you get the same results?

Hi Matthew,

I have not yet attempted your steps but I suspect I’d receive the same results. Others are claiming box collisions to work in 4.14 as well. So my conclusion is something may have gone wrong when upgrading my project.

In attempts to resolve the issue I tried to migrate my project already in 4.14 to a fresh 4.14. I only added the files needed to compile, and left most settings to default. This fixed touch interactions on a single item, but others still had the issue. The only difference I could find between the one that worked, and one that didn’t was the working one was set to physics and query while non-working was set to query only, and step-on was disabled on the working one. Though, I believe that has no relevance to the issue because even after matching collision settings the broken objects remained broken.

I’ve tried setting the input to UI and Game as I know that’s been an issue for many with 4.14. I’ve also tried creating all new custom collisions but that did not work either.

I have tried without having any widgets on screen as well, in the case they may have been blocking. My touch items use “GenericTouch” collision. I’ve tried setting defaults to ignore, overlay, and block – none seem to matter.

I’ve attached my settings which may help…

I discovered that the problem only occurs when a blueprint is being spawned, but not when it’s already placed in the level. This is probably why you couldn’t replicate it, as you were placing it in level when testing.

Here’s an example of how I’m spawning the blueprint:

I’ve tried changing the collision handling override should some reason that be creating problems but it had no change in results. Please try your test again but while using Spawn actor from class.

Unfortunately that doesn’t seem to be the only difference. I tried spawning the BP at runtime and haven’t seen a difference. I used the following to do so, as well as doing it on a delay (so that it wasn’t immediately spawned):

I’m not entirely sure what happened but I resolved the issue on some actors by erasing the GameEngine.ini, probably due to collision profiles being deleted, and the other actors I ‘fixed’ by making an entirely new actor blueprint and copying over the nodes.

The upgrade process must of in a weird way corrupted data and as far as I could tell there was no way to fix it other than rebuilding my work. Migration did not work either.

Update:

Found out what was ACTUALLY breaking collision.
Within Project Settings, having “Cooker > Cook Blueprint Compnent data for faster instancing at runetime” checked was the culprit.

This wasn’t a problem in 4.13 but apparently is in 4.14.