Beispiel #1
0
    void DrawFormationIndication()
    {
        Vector3        formationOrigin = Utilities.GetMouseWorldPosition();
        List <Vector3> formationPositions;
        int            positionsToDraw;

        // Grabs formation positions
        if (selectedPhalanx != null)
        {
            formationPositions = selectedPhalanx.GetPhalanxFrontline(formationOrigin, formationDirection);
            positionsToDraw    = formationPositions.Count;
        }
        else
        {
            formationPositions = fGen.GetCircleFormation(formationOrigin);
            positionsToDraw    = selectedEntities.Count;
        }

        // Draws formation
        for (int i = 0; i < positionsToDraw; i++)
        {
            // Generates new indicator if neccessary
            if (positionIndicators.Count <= i)
            {
                GameObject instance = Instantiate(unitPositionIndicatorPrefab, Vector2.zero, Quaternion.identity, positionIndicatorParent);
                positionIndicators.Add(instance);
            }

            // Sets indicator active and position
            if (i < formationPositions.Count)
            {
                positionIndicators[i].SetActive(true);
                positionIndicators[i].transform.position = formationPositions[i];
            }
            else
            {
                positionIndicators[i].SetActive(false);
            }
        }
    }