Hi! I’m trying to detect if two meshes are overlapping in a mobile game. I get the “is overlapping” detection to work with collision set to overlap on the meshes, but then the input touch on them doesn’t work, and that basically make these meshes unclickable. So it seems to get the input touch to work, I need to have a collision type as Block, and that doesn’t work with the is overlapping node. Any ideas?
Does not sound right. Could you show the collision settings of those meshes?
Hi and thank you for taking your time to respond.
EDIT: For the collision settings on the mesh, I changed them to BlockAll, then to Custom, and changed World Static to overlap, and that seems to have triggered something. One step closer, perhaps. But I need to get the collision itself added.
It triggers if I add a collision box manually. But there are hundreds of these meshes, so I need to do it dynamically. I also have have to increase the box collision size to be able to get meshes to detect if they are adjacent, with that overlap trigger. At least that was my plan.
So it must be something wrong with the collisions that I’m adding with the blueprint. According to my findings, this should do the trick, at least when I increase box collision with Set Box Extent. But it doesn’t work.
I meant this, this should be set on both meshes / collision volumes:
From the top:
- the Collision Presets - Custom allows you to customise the granularity of the response
- the Object Type (here, World Dynamic) should be the same for both interacting elements
- Trace Response - Visibility is for mouse clicks & touch (afaik) and should Block
- the Object Response should be set to Overlap for that Object Type
This way those two entities can detect overlapping each other, and the visibility trace will register user input. The rest can be set to Ignore unless needed for something else.
Thank you for your input. I did manage to get this to work. Your solution was only a part of it. My collisions were the big issue, since they all didn’t overlap eachother, and I obviously couldn’t go in and edit the collision on each and one of my hundreds of meshes. I created a script in 3ds max, which clones my meshes, scales them up a bit, and then renames to UCX_meshname. That way, Unreal Engine interprets these UCX meshes as custom collisions for each mesh, and voila. Anyway, thank you for helping me. Much appreciated.
Makes sense. Do note that if you use a high poly version of the mesh for collision, you will run into performance issues somewhat quickly.
Especially with physics - less important if the plan was to use complex Collison, as in for meshes with static mobility.
Normally, you’d decimate the mesh first, clean up, getting rid of as many redundant vertices as possible and only then use that simplification as UCX. And you max script that.
Ideally you’d make neat custom colliders (or have an intern do it )
The engine has some tools for playing with collision (including convex) but there’a no batching, afaik.