В основном у меня есть эти списки:
[System.Serializable]
public class PatrolGraph : MonoBehaviour {
public List<Node> nodes = new List<Node>();
public List<Edge> edges = new List<Edge>();
[...]
}
Я генерирую оба списка (узлы и ребра), используя метод, который запускаю из редактора.
Node и Edge являются сериализуемыми, а Edge содержит два узла. Однако после нажатия кнопки воспроизведения узлы, сохраненные в объектах Edge списка ребер, не кажутся такими же, как узлы в моем списке узлов (NodeA.Equals (NodeB)), даже если они должны быть.
Если я запускаю функцию для генерации списков во время воспроизведения (то же, что я запускаю в режиме редактирования), функция Equals внезапно возвращает true.
Вот код для классов Node и Edge:
Node:
[System.Serializable]
public class Node
{
public float lastVisited = 0;
public Vector3 position;
}
Край:
[System.Serializable]
public class Edge
{
public Node A;
public Node B;
public Edge (Node A, Node B)
{
this.A = A;
this.B = B;
}
}
Я хочу, чтобы узлы A и B в объектах Edge были теми же узлами, что и те, что были сохранены в списке узлов после того, как я нажал play. Что я делаю неправильно?
Заранее спасибо