Beispiel #1
0
    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;
    }
Beispiel #2
0
    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);
    }