{"id":4524,"date":"2017-04-21T21:31:33","date_gmt":"2017-04-21T13:31:33","guid":{"rendered":"https:\/\/unitycoder.com\/blog\/?p=4524"},"modified":"2017-04-21T21:34:34","modified_gmt":"2017-04-21T13:34:34","slug":"using-sharpnav-with-unity","status":"publish","type":"post","link":"https:\/\/unitycoder.com\/blog\/2017\/04\/21\/using-sharpnav-with-unity\/","title":{"rendered":"Using SharpNav with Unity"},"content":{"rendered":"<p>Noticed this SharpNav repository (Advanced Pathfinding for C#) at <a href=\"https:\/\/github.com\/Robmaister\/SharpNav\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/Robmaister\/SharpNav<\/a><\/p>\n<p>Since new unity versions support .NET 4.6, this should work in unity too,<br \/>\nthe sample script below runs, but not sure how to access the navmesh or navigation features..<\/p>\n<p><strong>Instructions:<\/strong><br \/>\n&#8211; Download SharpNav <a href=\"https:\/\/github.com\/Robmaister\/SharpNav\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/Robmaister\/SharpNav<\/a><br \/>\n&#8211; Open SharpNav-master\\SharpNav-master\\Source\\<strong>SharpNav.sln<\/strong> in VisualStudio<br \/>\n&#8211; Right click SharpNav on the Solution Explorer, select Build *Note: this compiles with 4.5.1<br \/>\n&#8211; Copy &#8216;SharpNav.DLL &#8216;, &#8216;Newtonsoft.Json.dll&#8217; and &#8216;YamlDotNet.dll&#8217; files from SharpNav-master\\SharpNav-master\\Binaries\\SharpNav\\Debug\\ folder into unity project, Plugins\/ &#8211; folder<br \/>\n&#8211; In Unity project, select .NET 4.6 in the player settings *Need to restart unity after this<br \/>\n&#8211; Download example mesh and add to scene, from: <a href=\"https:\/\/github.com\/Robmaister\/SharpNav\/blob\/96ddd939f292a4f4e76b460c1f783cdf1e9bcf41\/Source\/SharpNav.Examples\/nav_test.obj\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/Robmaister\/SharpNav\/blob\/96ddd939f292a4f4e76b460c1f783cdf1e9bcf41\/Source\/SharpNav.Examples\/nav_test.obj<\/a><br \/>\n&#8211; Attach script below into empty gameobject<br \/>\n&#8211; Drag example mesh into <span class=\"pl-en\">meshFilter<\/span> field in the empty gameobject script<br \/>\n&#8211; Hit Play! (nothing really happens.. would have to access the navmesh, but you are on your own now..*please post comment if you get it working, i&#8217;d like to know also : )<\/p>\n<p>**Note: here is older unity project for Recast\/Detour library: <a href=\"https:\/\/github.com\/unitycoder\/rcdtcs\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/unitycoder\/rcdtcs<\/a><\/p>\n<p><strong>Source:<\/strong><\/p>\n<style>.gist table { margin-bottom: 0; }<\/style>\n<div style=\"tab-size: 8\" id=\"gist46913615\" class=\"gist\">\n<div class=\"gist-file\" translate=\"no\" data-color-mode=\"light\" data-light-theme=\"light\">\n<div class=\"gist-data\">\n<div class=\"js-gist-file-update-container js-task-list-container\">\n<div id=\"file-sharpnavtest-cs\" class=\"file my-2\">\n<div itemprop=\"text\"\n      class=\"Box-body p-0 blob-wrapper data type-c  \"\n      style=\"overflow: auto\" tabindex=\"0\" role=\"region\"\n      aria-label=\"SharpNavTest.cs content, created by unitycoder on 01:22PM on April 21, 2017.\"\n    ><\/p>\n<div class=\"js-check-hidden-unicode js-blob-code-container blob-code-content\">\n<p>  <template class=\"js-file-alert-template\"><\/p>\n<div data-view-component=\"true\" class=\"flash flash-warn flash-full d-flex flex-items-center\">\n  <svg aria-hidden=\"true\" data-component=\"Octicon\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n    <span><br \/>\n      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.<br \/>\n      <a class=\"Link--inTextBlock\" href=\"https:\/\/github.co\/hiddenchars\" target=\"_blank\">Learn more about bidirectional Unicode characters<\/a><br \/>\n    <\/span><\/p>\n<div data-view-component=\"true\" class=\"flash-action\">        <a href=\"{{ revealButtonHref }}\" data-view-component=\"true\" class=\"btn-sm btn\">    Show hidden characters<br \/>\n<\/a>\n<\/div>\n<\/div>\n<p><\/template><br \/>\n<template class=\"js-line-alert-template\"><br \/>\n  <span aria-label=\"This line has hidden Unicode characters\" data-view-component=\"true\" class=\"line-alert tooltipped tooltipped-e\"><br \/>\n    <svg aria-hidden=\"true\" data-component=\"Octicon\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n<\/span><\/template><\/p>\n<table data-hpc class=\"highlight tab-size js-file-line-container\" data-tab-size=\"4\" data-paste-markdown-skip data-tagsearch-path=\"SharpNavTest.cs\">\n<tr>\n<td id=\"file-sharpnavtest-cs-L1\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"1\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC1\" class=\"blob-code blob-code-inner js-file-line\">using SharpNav;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L2\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"2\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC2\" class=\"blob-code blob-code-inner js-file-line\">using SharpNav.Geometry;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L3\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"3\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC3\" class=\"blob-code blob-code-inner js-file-line\">using System.Collections;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L4\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"4\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC4\" class=\"blob-code blob-code-inner js-file-line\">using System.Collections.Generic;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L5\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"5\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC5\" class=\"blob-code blob-code-inner js-file-line\">using UnityEngine;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L6\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"6\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC6\" class=\"blob-code blob-code-inner js-file-line\">using Vector3 = UnityEngine.Vector3;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L7\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"7\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC7\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L8\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"8\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC8\" class=\"blob-code blob-code-inner js-file-line\">public class SharpNavTest : MonoBehaviour<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L9\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"9\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC9\" class=\"blob-code blob-code-inner js-file-line\">{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L10\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"10\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC10\" class=\"blob-code blob-code-inner js-file-line\">    \/\/ assign your mesh here, try the example mesh provided in https:\/\/github.com\/Robmaister\/SharpNav\/blob\/96ddd939f292a4f4e76b460c1f783cdf1e9bcf41\/Source\/SharpNav.Examples\/nav_test.obj<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L11\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"11\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC11\" class=\"blob-code blob-code-inner js-file-line\">    public MeshFilter meshFilter; <\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L12\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"12\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC12\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L13\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"13\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC13\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L14\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"14\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC14\" class=\"blob-code blob-code-inner js-file-line\">    void Start()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L15\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"15\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC15\" class=\"blob-code blob-code-inner js-file-line\">    {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L16\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"16\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC16\" class=\"blob-code blob-code-inner js-file-line\">        \/\/ get mesh data<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L17\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"17\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC17\" class=\"blob-code blob-code-inner js-file-line\">        var vertices = meshFilter.mesh.vertices;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L18\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"18\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC18\" class=\"blob-code blob-code-inner js-file-line\">        var indices = meshFilter.mesh.triangles;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L19\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"19\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC19\" class=\"blob-code blob-code-inner js-file-line\">        var triangleCount = meshFilter.mesh.triangles.Length;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L20\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"20\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC20\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L21\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"21\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC21\" class=\"blob-code blob-code-inner js-file-line\">        \/\/ convert into sharpnav Vector3 array<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L22\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"22\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC22\" class=\"blob-code blob-code-inner js-file-line\">        SharpNav.Geometry.Vector3[] navVerts = new SharpNav.Geometry.Vector3[vertices.Length];<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L23\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"23\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC23\" class=\"blob-code blob-code-inner js-file-line\">        for (int i = 0, length = vertices.Length; i &lt; length; i++)<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L24\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"24\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC24\" class=\"blob-code blob-code-inner js-file-line\">        {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L25\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"25\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC25\" class=\"blob-code blob-code-inner js-file-line\">            navVerts[i] = ToSharpVector(vertices[i]);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L26\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"26\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC26\" class=\"blob-code blob-code-inner js-file-line\">        }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L27\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"27\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC27\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L28\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"28\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC28\" class=\"blob-code blob-code-inner js-file-line\">        \/\/prepare the geometry from your mesh data<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L29\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"29\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC29\" class=\"blob-code blob-code-inner js-file-line\">        var tris = TriangleEnumerable.FromVector3(navVerts, 0, 1, vertices.Length \/ 3);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L30\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"30\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC30\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L31\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"31\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC31\" class=\"blob-code blob-code-inner js-file-line\">        \/\/ check bounds<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L32\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"32\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC32\" class=\"blob-code blob-code-inner js-file-line\">        var bounds = tris.GetBoundingBox();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L33\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"33\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC33\" class=\"blob-code blob-code-inner js-file-line\">        Debug.DrawLine(ToUnityVector(bounds.Min.Xzy), ToUnityVector(bounds.Max.Xzy), Color.red, 99);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L34\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"34\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC34\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L35\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"35\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC35\" class=\"blob-code blob-code-inner js-file-line\">        \/\/use the default generation settings<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L36\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"36\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC36\" class=\"blob-code blob-code-inner js-file-line\">        var settings = NavMeshGenerationSettings.Default;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L37\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"37\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC37\" class=\"blob-code blob-code-inner js-file-line\">        settings.AgentHeight = 1.7f;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L38\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"38\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC38\" class=\"blob-code blob-code-inner js-file-line\">        settings.AgentRadius = 0.6f;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L39\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"39\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC39\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L40\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"40\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC40\" class=\"blob-code blob-code-inner js-file-line\">        \/\/generate the mesh<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L41\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"41\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC41\" class=\"blob-code blob-code-inner js-file-line\">        var navMesh = NavMesh.Generate(tris, settings);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L42\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"42\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC42\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L43\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"43\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC43\" class=\"blob-code blob-code-inner js-file-line\">        \/\/ TODO: now what???<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L44\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"44\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC44\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L45\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"45\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC45\" class=\"blob-code blob-code-inner js-file-line\">    }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L46\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"46\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC46\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L47\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"47\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC47\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L48\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"48\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC48\" class=\"blob-code blob-code-inner js-file-line\">    \/\/ converts sharpnav vector3 to unity vector3<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L49\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"49\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC49\" class=\"blob-code blob-code-inner js-file-line\">    Vector3 ToUnityVector(SharpNav.Geometry.Vector3 vector)<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L50\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"50\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC50\" class=\"blob-code blob-code-inner js-file-line\">    {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L51\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"51\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC51\" class=\"blob-code blob-code-inner js-file-line\">        return new Vector3(vector.X, vector.Y, vector.Z);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L52\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"52\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC52\" class=\"blob-code blob-code-inner js-file-line\">    }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L53\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"53\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC53\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L54\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"54\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC54\" class=\"blob-code blob-code-inner js-file-line\">    \/\/ converts unity vector3 to sharpnav vector3<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L55\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"55\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC55\" class=\"blob-code blob-code-inner js-file-line\">    SharpNav.Geometry.Vector3 ToSharpVector(Vector3 vector)<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L56\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"56\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC56\" class=\"blob-code blob-code-inner js-file-line\">    {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L57\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"57\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC57\" class=\"blob-code blob-code-inner js-file-line\">        return new SharpNav.Geometry.Vector3(vector.x, vector.y, vector.z);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L58\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"58\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC58\" class=\"blob-code blob-code-inner js-file-line\">    }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-sharpnavtest-cs-L59\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"59\"><\/td>\n<td id=\"file-sharpnavtest-cs-LC59\" class=\"blob-code blob-code-inner js-file-line\">}<\/td>\n<\/tr>\n<\/table>\n<\/div><\/div>\n<\/p><\/div>\n<\/div><\/div>\n<div class=\"gist-meta\">\n        <a href=\"https:\/\/gist.github.com\/unitycoder\/6843a7471efa42b5b8d9009b8eb31b9d\/raw\/0e801b31f4bedf1c527b839292da308a710bbc72\/SharpNavTest.cs\" style=\"float:right\" class=\"Link--inTextBlock\">view raw<\/a><br \/>\n        <a href=\"https:\/\/gist.github.com\/unitycoder\/6843a7471efa42b5b8d9009b8eb31b9d#file-sharpnavtest-cs\" class=\"Link--inTextBlock\"><br \/>\n          SharpNavTest.cs<br \/>\n        <\/a><br \/>\n        hosted with &#10084; by <a class=\"Link--inTextBlock\" href=\"https:\/\/github.com\">GitHub<\/a>\n      <\/div>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Noticed this SharpNav repository (Advanced Pathfinding for C#) at https:\/\/github.com\/Robmaister\/SharpNav Since new unity versions support .NET 4.6, this should work in unity too, the sample script below runs, but not sure how to access the navmesh or navigation features.. Instructions: &#8211; Download SharpNav https:\/\/github.com\/Robmaister\/SharpNav &#8211; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4525,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Using SharpNav with Unity","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[420,3],"tags":[89,5,688,687,974],"class_list":["post-4524","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","category-unity3d","tag-ai","tag-mesh","tag-navigation","tag-navmesh","tag-sharpnav"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2017\/04\/sharpnav.png?fit=680%2C193&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p1KTaT-1aY","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/comments?post=4524"}],"version-history":[{"count":2,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4524\/revisions"}],"predecessor-version":[{"id":4527,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4524\/revisions\/4527"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media\/4525"}],"wp:attachment":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media?parent=4524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/categories?post=4524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/tags?post=4524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}