How to reset scene position when player lose 1 health point?

I have try Application.LoadLevel but its also reset my player health, any other way ?

The easiest way would be to make your player health variable static. This means the variables is shared between all instances of whatever class the player health lives in. You will have to manually make sure your health is reset whenever it should be. Usually, you try to stay away from static variables when possible.

Another very easy option would be to set your player not to be DestroyedOnLoad.

    public static Player instance;

    // Use this for initialization
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
            DontDestroyOnLoad(this.gameObject);
        }
        else
        {
            Destroy(gameObject);
        }
    }

    private void OnDestroy()
    {
        instance = null;
    }

You will now manually need to destroy the gameObject when it’s needed. Also, the awake function there will prevent duplicates from happening. You will need to reset the rest of the player information if you go down this route instead.

There’s an endless amount of ways to do this, I think it ultimately comes down to preference. One of those two should work depending on your set-up.

You could save your startPos: Vector3 startPos; ... startPos = transform.position;

And when you lose health, you set the position to startPos: transform.position = startPos; //Something like that.