Generating forest based on perlin noise

Always back up to the first source of your data, in this case the Mathf.PerlinNoise() method. Find what output it is giving you (eg, print it out with Debug.Log()) across the 100x100 field.

I’m going to guess you are so massively scaled up at the above settings that the Perlin noise is just a random field of sampled dots. If you instead set your ratio to 0.015f you might get some more interesting patterns.

ALSO: you both defined a public float for ratio AND you set its value with a field initializer. That is going to get very confusing if you try to change it in code and nothing changes. Here is why:

Field initializers versus using Reset() function and Unity serialization: