Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by MichaelJT · Apr 08, 2015 at 09:09 AM · arraynavmeshnavmeshagent

Why are NavMeshPath.corners all 0, 0, 0 when generated with NavMesh.CalculatePath?

I'm currently creating a function which, when called, calculates the distance to each vector in an array of waypoints and returns the three closest way points.

This is for the Unity Stealth Project.

I thought I had it working but then realised my function always returned the same three waypoints, but occasionally in different orders. The issue I found (by using Debug.Log to show the path corners of each NavMeshPath the function generated) was that all the points in the NavMeshPath were 0, 0, 0.

When I've previously used NavMeshAgent.CalculatePath, I didn't have this issue, in fact I'm successfully using it to make my AI return to their closest patrol point (as opposed to the last patrol waypoint).

Here's the code I'm using:

 int FindNearestWaypoints (Vector3 sightingPosition, Transform [] WayPoints)

     {
         int minDistanceIndex;
         float[] distanceToWaypoint = new float [WayPoints.Length];
         // An array of floats to store the distances to each of the AI's patrol waypoints.
         NavMeshPath [] returnPaths = new NavMeshPath[WayPoints.Length];
         // An array of NavMeshPaths, the lengths of which we want to measure.
         
         for (int i = 0; i < distanceToWaypoint.Length; i++)
         {
             returnPaths [i] = new NavMeshPath();
 
             NavMesh.CalculatePath (sightingPosition, WayPoints[i].position, NavMesh.AllAreas, returnPaths[i]);
 
             Vector3 [] allPoints = new Vector3[returnPaths[i].corners.Length+2];
 
             allPoints [0] = sightingPosition;
             allPoints [allPoints.Length-1] = WayPoints[i].position;
 
             for (int j = 0; j < returnPaths[i].corners.Length - 1; j++)
             {
                 allPoints[j+1] = returnPaths[i].corners[j];
             }
             // Adds the path corners to the array of Vector3s.
             for (int k = 0; k < allPoints.Length - 1; k++)
             {
                 distanceToWaypoint [i] += Vector3.Distance (allPoints[k+1],allPoints [k]);
             }//Calculates the distance between each point in the Vector3 array and sums it.
         }
         
         minDistanceIndex  = FindMininumIndex (distanceToWaypoint);
         return minDistanceIndex;
     }

When I used Debug.Log, I found that all the allpoints values were actually 0, 0, 0.

And yes this is a modified version of the hearing distance script from the tutorial.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

2 People are following this question.

avatar image avatar image

Related Questions

when I add the nav mesh agent, and press play the character rises a little off the terrain. any ideas why? 0 Answers

Agent won't traverse auto generated offmeshlinks 2 Answers

I get NullReferenceException when I use raycasts 0 Answers

Split Rotation and Moving of a NavMeshAgent 1 Answer

Horde of NavMeshAgents - stops to recalculate path. 4 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges