public void CalculateGValue(GameObject from) { GameObject prev = closestRoad; AStarCalc contains = null; foreach (var item in aStarValues) { if (GameObject.ReferenceEquals(item.from, from)) { contains = item; } } if (contains == null) { contains = new AStarCalc(from, float.PositiveInfinity, float.PositiveInfinity, float.PositiveInfinity); aStarValues.Add(contains); } contains.G = 0; while (prev.GetComponent <RoadElementModel>() != null) { contains.G++; prev = prev.GetComponent <RoadElementModel>().previousElement; } //Debug.Log("ennyi útelem van mögöttem : " + G + " ------- " + gameObject.name + " -------- " + transform.parent.name); prev.GetComponent <CrossRoadModel>().canConnectToFromExit = this.gameObject; }
public void CalculateHValue(GameObject from, GameObject to) { AStarCalc contains = null; foreach (var item in aStarValues) { if (GameObject.ReferenceEquals(item.from, from)) { contains = item; } } if (contains == null) { contains = new AStarCalc(from, float.PositiveInfinity, float.PositiveInfinity, float.PositiveInfinity); aStarValues.Add(contains); } //Egy ilyen csempe 5 hosszú ezért osztok öttel hogy a G-vel ugyanolyan súlyúak legyenek, így lesz valid a számolás contains.H = Vector3.Distance(transform.position, to.transform.position) / 5; //Debug.Log(transform.position + " ---- " + to.transform.position + " ---- " + H + " ---- " + transform.parent.name); }