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 yair710 · Jun 22, 2021 at 07:12 AM · 2dlistwaypoint

Nodes are deleted from the list for no reason

I have a list of nodes that I built manually and every time I click start a game there is a node in the list that is deleted and I can not understand why

the code

 public class NodeScript : MonoBehaviour
 {
     public NodeScript[] neighbors;
     public List<NodeScript> history = new List<NodeScript>();
     public void OnDrawGizmos()
     {
         Gizmos.DrawIcon(transform.position, "blendsampler");
         foreach(var node in history)
         {
             Gizmos.DrawLine(transform.position, node.transform.position);
         }
     }
 }

before

alt text

After the start of the game

alt text

לפני.png (49.4 kB)
אחרי.png (41.0 kB)
Comment
Add comment · Show 3
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
avatar image Captain_Pineapple · Jun 22, 2021 at 07:20 AM 0
Share

is there really no other script interacting with this? do you exit play mode to make the list changes? changes are only saved when you are not in play mode.

avatar image yair710 Captain_Pineapple · Jun 22, 2021 at 07:26 AM 0
Share

There is another script that calls to it and that this script is connected then the problem happens I forgot to attach it

avatar image yair710 yair710 · Jun 22, 2021 at 08:29 AM 0
Share

According to the debugging I did, I saw that the code did not enter the for in line 60 according to the code I sent below and the code jumps to line 76 and returns a blank list and then the node disconnects from the list

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by yair710 · Jun 22, 2021 at 07:27 AM

 public class botAiScript : MonoBehaviour
 {
     public List<NodeScript> AllNodes = new List<NodeScript>();
     public NodeScript ClosestNode;
     public NodeScript TargetNode;
     public Transform Target;
     public List<NodeScript> Path;
     public Movement mvmt;
     public float minDist;
     public float maxDist;
     public List<NodeScript> result;
     void Awake()
     {
         //Path = new List<NodeScript>();
         result = new List<NodeScript>();
         AllNodes = FindObjectsOfType<NodeScript>().ToList();
     }
     NodeScript GetClosestNodeTo(Transform t)
     {
         NodeScript fNode = null;
         float minDistance = Mathf.Infinity;
         foreach (var node in AllNodes)
         {
             float distance = (node.transform.position - t.position).sqrMagnitude;
             if (distance < minDistance)
             {
                 minDistance = distance;
                 fNode = node;
             }
         }
         return fNode;
     }
     private List<NodeScript> Breadthwise(NodeScript start, NodeScript end)
     {
         Debug.Log("2");
         result = new List<NodeScript>();
         List<NodeScript> visited = new List<NodeScript>();
         Queue<NodeScript> work = new Queue<NodeScript>();
 
         start.history = new List<NodeScript>();
         visited.Add(start);
         work.Enqueue(start);
 
         while (work.Count > 0)
         {
             Debug.Log("3");
             NodeScript current = work.Dequeue();
             if (current == end)
             {
                 Debug.Log("4");
                 //Found Node
                 result = current.history;
                 result.Add(current);
                 return result;
             }
             else
             {
                 //Didn't find Node
                 Debug.Log("5");
                 for (int i = 0; i < current.neighbors.Length; i++)
                 {
                     Debug.Log("6");
                     NodeScript currentNeighbor = current.neighbors[i];
                     if (!visited.Contains(currentNeighbor))
                     {
                         Debug.Log("7");
                         currentNeighbor.history = new List<NodeScript>(current.history);
                         currentNeighbor.history.Add(current);
                         visited.Add(currentNeighbor);
                         work.Enqueue(currentNeighbor);
                     }
                 }
             }
         }
         //Route not found, loop ends
         return null;
     }
     void Update()
     {
         if (!GetClosestNodeTo(Target).Equals(TargetNode))
         {
             Debug.Log("1");
             TargetNode = GetClosestNodeTo(Target);
             ClosestNode = GetClosestNodeTo(transform);
             Breadthwise(ClosestNode, TargetNode);
         }
         //MoveTowardsPath();
     }
 }

Comment
Add comment · Share
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

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

284 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

A node in a childnode? 1 Answer

moving object toward waypoint and alignment 0 Answers

Confused about copying Lists! 1 Answer

Make object move through waypoints by the given number in the name 1 Answer

How can i detect how many objects of the same type i'm triggering and choose only one of them? 1 Answer


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