Hello,
probably since first version, there is one issue which causes NavLinks to be unsafe and sometimes confusing.
Picture:
Project download:
Used version: 4.7.6 (smart links don’t work in 4.8, so I used older version)
If you send character across navlink (up), colored text “Reached” should appear. Press F key and send character across navlink, debug log will not appear.
Reproduction steps:
- Create Top Down template
- Add NavModifier volume and Nav Link Proxy with smart link enabled
- Position NavLinkProxy start point and end point to be close to the edge of navmesh
- Set Location of Character during gameplay to start point or end point of navlink
- Send Character to the opposite site, so he should use navlink for travelling
= He will not use NavLink and will just go straight to that point
Cause:
This is caused because when we set location of character close to the edge of navmesh it thinks it is not on navmesh anymore because character is not just point, it is cylinder. But NavLink start and end are points, they are not cylinders, so they don’t take radius of character in account.
Solution:
NavLink start and end should be cylinders of AgentRadius size and they need to be fully enclosed by navmesh, not just overlapped.
Why it is needed:
I have multiple features based on NavLinks. Good example is ladder. My character AI goes to navlink start point, climbs up ladder and then its location is set to navlink end point. If I send this character back to original location across NavLink it will ignore ladder and just jump down from ledge. Yes, there is workaround, I need to make sure that every navlink start and end point is not near navmesh edge but checking every navlink in map and testing it is time consuming and this issue can be easily overlooked, so it can happen in final game too.
Thank you, see my other NavLink question too