What is the reason of Drawtexture() not work rightly on my Script?


This is my code.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;

public class TeethonContainer : IMGUIContainer
{
    public Texture2D texture;
    public Rect textureRect;

    public new class UxmlFactory : UxmlFactory<TeethonContainer, UxmlTraits> { }
    public new class UxmlTraits : VisualElement.UxmlTraits
    {

        public override void Init(VisualElement ve, IUxmlAttributes attributes, CreationContext context)
        {
            base.Init(ve, attributes, context);

        }
    }
 
    public TeethonContainer()
    {
        texture = Resources.Load<Texture2D>("Templates/1");
        this.onGUIHandler += OnGui;

    }


  

    private void OnGui()
    {
        Rect sourceRect = new Rect(0, 0, texture.width, texture.height);
        GUI.DrawTexture(sourceRect, texture);
    }
   
}

As you see the picture, the texture is not drawn at (0,0).
I don’t know the reason.
Please help me.