36 lines
977 B
C#
36 lines
977 B
C#
|
|
|||
|
using System;
|
|||
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace Ether
|
|||
|
{
|
|||
|
public class AStarNode : IComparable<AStarNode>
|
|||
|
{
|
|||
|
public Vector2Int gridPosition; //网格坐标
|
|||
|
public int gCost = 0; //距离Start格子的距离
|
|||
|
public int hCost = 0; //距离Target格子的距离
|
|||
|
public int FCost => gCost + hCost; //当前格子的值
|
|||
|
public bool isObstacle = false; //当前格子是否是障碍
|
|||
|
public AStarNode parentNode;
|
|||
|
|
|||
|
public AStarNode(Vector2Int pos)
|
|||
|
{
|
|||
|
gridPosition = pos;
|
|||
|
parentNode = null;
|
|||
|
}
|
|||
|
|
|||
|
public int CompareTo(AStarNode other)
|
|||
|
{
|
|||
|
//比较选出最低的F值,返回-1,0,1
|
|||
|
int result = FCost.CompareTo(other.FCost);
|
|||
|
if (result == 0)
|
|||
|
{
|
|||
|
result = hCost.CompareTo(other.hCost);
|
|||
|
}
|
|||
|
return result;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|