Z position of new GameObject

Hi! I’m a new in Unity and I have a little problem )). I created project with this hierarchy.

3054038--229254--unity.jpg

When I manually add new image to the “Game” layer - all is OK - the image rendered on “Background” layer. Now I add script to “Game” layer for adding sprites dynamically.
Simple code for this:

void Start () {

    GameObject go = new GameObject("Test");
    SpriteRenderer renderer = go.AddComponent<SpriteRenderer>();
    go.transform.parent = gameObject.transform;
    go.transform.position = new Vector2(5, 3);
    renderer.sprite = LoadNewSprite("Assets/Resources/Textures/img.png");

}

But now, my sprite rendered under “Background” layer. I tried changed z position in script - but no result.

order in layer is more important as z-position, try to change it.

use the following method to create Game Object dynamically :
public static Object Instantiate(Object original, Transform parent);
Instead of manually assigning parent transform , pass that as second parameter.
It works.