Why the new text is drawn on top of the old one and how to avoid it

Hello! I try to write some text on screen in Update() method in my script. But I get a problem. Apparently the new text is written over the old. I couldn’t find a solution how to avoid this problem. Anyone have any idea why this happened?

200404-screenshot-1.png

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class PlayerHudDump : MonoBehaviour
{
    private Text _textComponent;
    private GameObject _playerObject;

    void Start()
    {
        _textComponent = GetComponent<Text>();
        _playerObject = GameObject.Find("Player");
    }

    void Update()
    {
        _textComponent.text = "";

        if (Input.anyKey)
        {
            _textComponent.text = String.Concat(new String[] {
                "Position: ",
                Math.Round(_playerObject.transform.position.x, 2) + "; ",
                Math.Round(_playerObject.transform.position.x, 2) + "; ",
                Math.Round(_playerObject.transform.position.x, 2) + ";" + Environment.NewLine,

                "Move Horizontal: ",
                Math.Round(Input.GetAxis("MoveHorizontal"), 2) + ";" + Environment.NewLine,

                "Move Vertical: ",
                Math.Round(Input.GetAxis("MoveVertical"), 2) + ";" + Environment.NewLine,
            });
        }
        else 
        {
            _textComponent.text = String.Concat(new String[] {
                "Position: ",
                Math.Round(_playerObject.transform.position.x, 2) + "; ",
                Math.Round(_playerObject.transform.position.x, 2) + "; ",
                Math.Round(_playerObject.transform.position.x, 2) + ";" + Environment.NewLine,

                "Move Horizontal: 0;" + Environment.NewLine,
                "Move Vertical: 0;"
            });
        }
    }
}

I found the reason why this happened. It is because my camera not clearing in Clear Flags setting.