Hey, this is a canvas object I have used as the base for a lot of projects lately, and just fine tuned it up in the project I am doing now.
So I think it's at a point where it can be shared. This is just an object with a few arrays and scripts that set you up to use a canvas as a UI
What I mean is, the arrays are stored with cursor ID, starting x,y value and Hit in a way that you can recall those values easily to do UI stuff.
Just check it out and you'll see. This thing sure makes my life easier
Note: all x and y points are used as 0-1 values, for convenience
https://liine.net/en/community/user-library/view/598/