public static GetFirstNonWallPos ( Vector2 startPos, Vector2 endPos ) : Vector2 | ||
startPos | Vector2 | |
endPos | Vector2 | |
Результат | Vector2 |
public static Vector2 GetFirstNonWallPos(Vector2 startPos, Vector2 endPos)
{
int distance = 0;
for (int i = 0; i < Manager.MenuManager.CondemnPushDistance; i += 20)
{
var cell = startPos.Extend(endPos, endPos.Distance(startPos) + i);
if (NavMesh.GetCollisionFlags(cell).HasFlag(CollisionFlags.Wall) ||
NavMesh.GetCollisionFlags(cell).HasFlag(CollisionFlags.Building))
{
distance = i - 20;
}
}
return startPos.Extend(endPos, distance + endPos.Distance(startPos));
}