Showing the path of a projectile
I don't see anything particularly wrong with the loops themselves, but, as far as coding style goes:


tempVal and displayLine should be declared as close as possible to the place where they're first used.
the values returned by Math.RoundToInt and Mathf.Clamp don't seem to have anything in common, so they should be assigned to different variables. Don't reuse tempVal for different and unrelated things.
tempVal, x, y and a should be given more meaningful names.
You should use a StringBuilder to build strings, instead of using string concatenation.
Your indentation is all over the place.
In C#, it is common practice to put the opening bracket { on its own line - although one could argue that this is a matter of personal preference and doesn't really matter as long as you're consistent throughout the codebase.

for(int y = 0; y &lt; 16; y++)
{
    var sb = new StringBuilder();

    //HERE
    for(int x = 0; x &lt; 40; x++)
    {
        int height = Mathf.RoundToInt(Physics.HeightAtPoint(x, a, 15f, 0));
        int clamp = Mathf.Clamp(height, 0, 16);

        if(Mathf.CloseTo(16 - y, clamp, 1)) 
            sb.Append(" X");
        else
            sb.Append(" .");

    }
    Console.WriteLine(sb.ToString());
}