// спавним дерево по x и y
    void RollNSpawn(int x, int y)
    {
        float h = terrain.SampleHeight(new Vector3(x, 0, y));     // вытаскивая высоту из карты высот ландшафта
        // копируя префаб
        ProceduralTree placement = (Instantiate(tree, terrain.transform) as GameObject).GetComponent <ProceduralTree>();

        placement.transform.position = new Vector3(x, h, y);
        // и рандомля пачку параметров
        placement.transform.localScale = new Vector3(Roll(scale), Roll(scale), Roll(scale));
        placement.SegmentLength        = Roll(segmentLength);
        placement.Twisting             = Roll(twisting);
        placement.BaseRadius           = Roll(baseRadius);
        placement.MinimumRadius        = Roll(minimumRadius);
        placement.BranchRoundness      = Roll(roudness);
        placement.Renderer.material    = materials[Random.Range(0, 4)];
        // после чего обновляя меш у дерева
        placement.ForceUpdate();
    }