- Home /
How can I detect collision with a text mesh without manually creating a polygon collider?
I want text to be traced via touch input in a 2D game and need to know if the finger leaves contact with text. I am creating the text with a text mesh but it doesn't seem like there is anyway to do this without manually making polygon colliders. Also, I don't want to make the text with a sprite instead. I will have upwards of 100 prefabs that need this and making these by hand would be very time consuming. I already checked the asset store but couldn't find any free assets that would help with this. Does anyone know how I could do this?
Unity Forums might be a better place to get an answer to this question.
Answer by DavidMann · Nov 23, 2014 at 01:54 AM
My guess is that you won't even be able to get away with polygon colliders if you're targeting a mobile device. Unless, perhaps, your game only features a few of these. You probably will have to use even cheaper colliders to do what you want.
Answer by Jeff-Kesselman · Nov 23, 2014 at 02:02 AM
Use a box collider unless there is some really important reason you need precise hits.
If the latter, I would suggest you render the text to an offscreen buffer with a black background. Then check the touch point in the ofscreen image to see if its is black or not.
hmmm that would work except I would have to create a lot of the buffers because a bunch of the letters are instantiated on top of eachother and they overlap.
Answer by Jignesh G. · Nov 23, 2014 at 06:41 PM
The best way is to use BoxCollider or edge collider to detect collision.
if you want complex solution then you can use positions of TextMesh and and otherObjects with co-relation of mesh sizes and that position interacts means collision occured.
Your answer
Follow this Question
Related Questions
rigidbody 2d goes through polygon collider 2D 0 Answers
2D Hill Generation 1 Answer
Polygon Collider 2D collision problem 4 Answers
(Editor Scripting) Is it possible to generate MenuItems? 2 Answers
How to create an endless track? 1 Answer