Esempio n. 1
0
    private void _Render()
    {
        if (0 == _gridTransforms.Count)
        {
            return;
        }

        if (null == AStar.gridMap || 0 == AStar.gridMap.Count || _wasRender)
        {
            _RayCastNode();
            return;
        }

        _wasRender = true;

        // Set suitable Materials for All GRID_MAP's NODES
        for (int i = 0; i < AStar.gridMap.Count; i++)
        {
            for (int j = 0; j < AStar.gridMap[i].Count; j++)
            {
                // if Not WalkAble NODE [Set Red Material]
                if (false == AStar.gridMap[i][j])
                {
                    _SetMaterial(_gridTransforms[i][j].GetComponent <Renderer>(), redMat);
                }
                else if (                   // else if START or END NODE [Set Blue Material]
                    AStar.startIndex.i == i && AStar.startIndex.j == j ||
                    AStar.endIndex.i == i && AStar.endIndex.j == j
                    )
                {
                    _SetMaterial(_gridTransforms[i][j].GetComponent <Renderer>(), blueMat);
                }
                else
                {
                    _tmpNodeIndex   = new NodeIndex();
                    _tmpNodeIndex.i = i;
                    _tmpNodeIndex.j = j;
                    // if PATH NODE [Set Green Material] else [Set White Material]
                    if (AStar.ContainsNodeIndex(AStar.pathNodes, _tmpNodeIndex))
                    {
                        _SetMaterial(_gridTransforms[i][j].GetComponent <Renderer>(), greenMat);
                    }
                    else
                    {
                        _SetMaterial(_gridTransforms[i][j].GetComponent <Renderer>(), whiteMat);
                    }
                }
            }
        }
    }
Esempio n. 2
0
    private void _Render()
    {
        if (0 == _gridTransforms.Count)
        {
            return;
        }

        if (null == AStar.gridMap || 0 == AStar.gridMap.Count || _wasRender)
        {
            //_RayCastNode();
            return;
        }

        _wasRender = true;
        //movementArrayIndex = 0;
        // Set suitable Materials for All GRID_MAP's NODES
        movementArray.Clear();
        for (int i = 0; i < AStar.gridMap.Count; i++)
        {
            for (int j = 0; j < AStar.gridMap[i].Count; j++)
            {
                // if Not WalkAble NODE [Set Red Material]
                if (false == AStar.gridMap[i][j])
                {
                    //_SetMaterial(_gridTransforms[i][j].renderer, redMat);
                    _nodeStatesGrid[i][j].HighlightTile("red");
                }
                else if (                   // else if START or END NODE [Set Blue Material]
                    AStar.startIndex.i == i && AStar.startIndex.j == j ||
                    AStar.endIndex.i == i && AStar.endIndex.j == j
                    )
                {
                    _nodeStatesGrid[i][j].HighlightTile("blue");
                    if (_nodeStatesGrid[i][j] != null)
                    {
                        Vector3 tileVector = _nodeStatesGrid[i][j].transform.position;
                        //tileVector = new Vector3(tileVector.x , tileVector.y , tileVector.z );
                        //movementArray[ movementArray.Length ] = tileVector;
                        //movementArray.Add ( tileVector );
                    }
                    //_SetMaterial(_gridTransforms[i][j].renderer, blueMat);
                }
                else
                {
                    _tmpNodeIndex   = new NodeIndex();
                    _tmpNodeIndex.i = i;
                    _tmpNodeIndex.j = j;
                    // if PATH NODE [Set Green Material] else [Set White Material]
                    if (AStar.ContainsNodeIndex(AStar.pathNodes, _tmpNodeIndex))
                    {
                        _nodeStatesGrid[i][j].HighlightTile("green");
                        if (_nodeStatesGrid[i][j] != null)
                        {
                            Vector3 tileVector = _nodeStatesGrid[i][j].transform.position;
                            //tileVector = new Vector3(tileVector.x , tileVector.y , tileVector.z );
                            //movementArray[ movementArray.Length ] = tileVector;
                            movementArray.Add(tileVector);
                        }

                        //Debug.Log("HI");
                        //_SetMaterial(_gridTransforms[i][j].renderer, greenMat);
                    }
                    else
                    {
                        //_SetMaterial(_gridTransforms[i][j].renderer, whiteMat);
                        _nodeStatesGrid[i][j].HighlightTile("white");
                    }
                }
            }
        }
    }