コード例 #1
0
ファイル: AStar.cs プロジェクト: lobobeebe/PixelMoba
    private void ExamineNeighbors(List <Node> neighbors, Node currentNode, Vector3Int goalPos, NodeGrid grid)
    {
        foreach (Node neighbor in neighbors)
        {
            int gScore = DetermineGScore(neighbor.Position, currentNode.Position);

            if (!grid.CanMove(currentNode, neighbor))
            {
                continue;
            }

            if (_OpenList.Contains(neighbor))
            {
                if (currentNode.G + gScore < neighbor.G)
                {
                    CalcValues(currentNode, neighbor, goalPos, gScore);
                }
            }
            else if (!_ClosedList.Contains(neighbor))
            {
                CalcValues(currentNode, neighbor, goalPos, gScore);
                _OpenList.Add(neighbor);
            }
        }
    }