Texture display distortion


After I textured the pipe, the texture is distorted, is there anything I can do to fix it?
Is there a way to set it only once, compatible with all pipelines?

I don’t exactly know how uvs are generated by the CreateTube method, but you can generate them yourself based on where the point you want to calculate the uv is from the base of the tube: