Quick answer: Default Texture Mode = Stretch stretches one UV across the entire line. For long or curved lines, switch to Tile with a tile factor matching desired world repeat distance. Use a seamless tileable texture for clean results.

Here is how to fix Unity LineRenderer textures that stretch grotesquely on curved or long lines. A trail-render or rope effect looks fine on a short straight line but smears comically on bends. The cause is the default Texture Mode, which maps the entire texture from line start to line end without regard for length or curvature.

The Symptom

A LineRenderer with a striped or patterned texture renders the pattern stretched across the whole line. On a curve, the stretch is even more pronounced. Short straight lines look fine.

What Causes This

Stretch mode default. The line’s UV V coordinate goes 0–1 across all segments combined, ignoring distance.

Few line points on curves. A curve approximated by 3 points has only 3 segments; UVs distribute crudely. More points yield finer UV distribution.

Wrong tile factor. Tile mode needs a matching tile multiplier; default 1 may not match your desired world-space density.

The Fix

Step 1: Switch to Tile mode.

line.textureMode = LineTextureMode.Tile;
line.material.mainTextureScale = new Vector2(2f, 1f);  // 2x repeats per length unit

Tile maps the V coordinate to world distance, so the texture repeats consistently regardless of total line length.

Step 2: Increase line subdivisions. If you generate a curved line in code, sample more points:

int samples = 64;
line.positionCount = samples;
for (int i = 0; i < samples; i++)
{
    float t = (float)i / (samples - 1);
    line.SetPosition(i, SampleCurve(t));
}

More positions = smoother visual curve and finer-grained UVs.

Step 3: Use a seamless tileable texture. Authored textures with edges that tile horizontally avoid visible seams when Tile repeats. Test by laying the texture next to itself and looking for the join.

Step 4: Match Use World Space to art expectations. If Use World Space is enabled, line points are in world coordinates and the texture density reflects world units. If disabled, density is in local units. Choose the one that gives consistent appearance regardless of parent scale.

Step 5: For per-segment art, use Distribute Per Segment.

line.textureMode = LineTextureMode.DistributePerSegment;

The full texture maps to each segment independently. Useful for chain-link art where each segment is a discrete chain icon.

Mode Comparison

Stretch:               0-1 UV across whole line
Tile:                  UV repeats per world unit
Repeat Per Segment:    UV repeats per segment, with edge sharing
Distribute Per Segment: full UV per segment, no sharing

Pick based on what your art is meant to show. Trails of dust: Tile with seamless dust. Chains: Distribute with chain link. Lasers: Stretch with a single laser texture is often fine because the line is short.

“Stretch mode is for short lines. Tile is for long lines. Per Segment is for repeating discrete art.”

Related Issues

For LineRenderer not visible in URP, see LineRenderer Not Visible URP. For trail issues, see Particle Trail Through Walls.

Tile mode. Match world scale. Seamless texture. Lines stop stretching.