Beispiel #1
0
    void HandleWallMode()
    {
        pointer.transform.position = selectPosition[iSelection];
        if (selectType[iSelection] == 1)
        {
            if (iSelection == 0)
            {
                targets[iSelection].GetSidePosition(selectIndex[0], out pointsOnWall[0][0], out pointsOnWall[0][1]);
            }
            if (iSelection == 1 && lastSelectIndex != selectIndex[iSelection])
            {
                targets[iSelection].GetSidePosition(selectIndex[0], out pointsOnWall[0][0], out pointsOnWall[0][1]);
                targets[iSelection].GetSidePosition(selectIndex[1], out pointsOnWall[1][0], out pointsOnWall[1][1]);

                if (StructureData.GetNormal(pointsOnWall[1][0], pointsOnWall[0][0], pointsOnWall[0][1]) != Vector3.zero)
                {
                    targets[iSelection].MaximizeSide(selectIndex[0], pointsOnWall[1][0], out pointsOnWall[0][0], out pointsOnWall[0][1]);
                }
                else
                {
                    targets[iSelection].MaximizeSide(selectIndex[0], pointsOnWall[1][1], out pointsOnWall[0][0], out pointsOnWall[0][1]);
                }

                if (StructureData.GetNormal(pointsOnWall[0][0], pointsOnWall[1][0], pointsOnWall[1][1]) != Vector3.zero)
                {
                    targets[iSelection].MaximizeSide(selectIndex[1], pointsOnWall[0][0], out pointsOnWall[1][0], out pointsOnWall[1][1]);
                }
                else
                {
                    targets[iSelection].MaximizeSide(selectIndex[1], pointsOnWall[0][1], out pointsOnWall[1][0], out pointsOnWall[1][1]);
                }

                if (pointsOnWall[0][1] != pointsOnWall[1][1] || pointsOnWall[0][0] != pointsOnWall[1][0])
                {
                    ResetModel();
                    BuildWall(pointsOnWall[0][0], pointsOnWall[0][1], pointsOnWall[1][0], pointsOnWall[1][1], material, true);
                    thisRenderer.SteppedRenderStructure();
                }
            }
        }
        else
        {
            pointsOnWall[iSelection][0] = Vector3.zero;
            pointsOnWall[iSelection][1] = Vector3.zero;
            ResetModel();
        }
        lastSelectIndex = selectIndex[iSelection];
    }