Get surface type on mouse click not working?
lately i've been fooling around with some blueprints and tried to make a point a click. So whenever i click i save that location and send the player to it. But then i noticed i can click on walls and some other unwalkable parts and the player tries to go there stopping at the wall. Well not much of a problem with that.
But then decided to show a marker where you click just to show you exactly where the character will go, the problem is that the marker appears on walls too and that's pretty ugly.
So i wanted to get the surface type and check if it's of floor type and only then spawn the marker and move the character.
The problem is that it doesn't matter where i click with the mouse, it always return the same surface type...
I'm using "Get Hit Result under Cursor by Channel" node to get the hit result. Then from the hit result pin i connect it to "Get Surface Type" node, then a "Switch" from this node that gives me 3 output pins: "Default", "Floor", "Walls" (those 2 i created them in project settings). For testing purposes made some prints nodes to check the return value: Always "Default".
I made the phys material for the floor and set it up on the floor material too (even tested with the hit of another actor and for that actor it's working properly but not for the mouse). The setup is pretty simple isn't it? You set up the physical surface in the project settings/physics, then you create a physical material in the content browser, in its properties you set the desired physical surface. Then in the material you set that created physical material. And then just set this material to the desired object.
What am i doing wrong?
Thank you in advance for any help!
asked Aug 02 '15 at 03:04 PM in Blueprint Scripting
I think that you may be over thinking this with using physics and physics materials. Simply create a new collision type called Floor (set its default behavior to ignore so all current and future BP collisions will ignore it), set your floor BP collision to block Floor then do your "Get Hit Results UnderCursor By Channel" and switch the enum of the trace channel to Floor. This will only return hit results that have the collision Floor set to block.
Hope this helps! If it does then please do me a favor and accept the answer by clicking the check mark located under the arrows next to the answer. Thanks!
answered Aug 03 '15 at 11:43 AM
Can someone please test this out and report back with the result? I'd like to know if it's just me or it's a bug that should be reported
answered Aug 03 '15 at 11:29 AM
Follow this question
Once you sign in you will be able to subscribe for any updates here