Okay. Well, you want to pick a reference resolution on the main CanvasScaler, and leave it that way. Then, you will need to restart designing your UI layout and properties. You can’t change the reference resolution or screen match mode later.
So, if you want the reference height to be 720, that’s fine. Really, the best height value is the pixel resolution of the device you need to support.
If you need to support multiple device resolutions, then you must keep in mind that the CanvasScaler will use multiplication to scale everything on the Canvas up or down, to match the actual screen height. That is all. Sometimes it will multiply up, sometimes down. So pick a good value that you like. Then, stop changing it, and begin to remake your UI.
So, if you want the reference height to be 720, then the algebra is like this for a narrow screen:
hr = height ratio
wr = width ratio
hp = height pixel resolution
wp = width pixel resolution
hr/wr = hp/wp
3/4 = 720/wp
wp = 720/0.75
wp = 960
So, with a reference height of 720, your reference resolution would be 960x720. That, or 1440x1080, or whatever. You just have to pick a reference height, lock it in, and stick to it.
I can’t tell more from here with just that image. If you could export a .unitypackage or share the actual canvas in some way I could look at it when I’m at a computer.
But, the red X’s usually appear because the RectTransform properties of your UI components are set in a way that makes the rectangle of that element invert backwards. You will have to go back through your components and lay everything out on a 4:3 aspect ratio in the Game View, like the reference resolution.
Then, change the Game View to a wider aspect ratio. Use anchors horizontally to stretch an element, or keep it relative to a certain part of the screen, or both. You can use a bit of anchor, and a bit of pixel width for a combined effect on a particular rectangle.
Anchors on the height axis don’t matter with this setup. Just arrange them in the most pleasing way for your workflow. They can all be at the center of the screen height, or they can be anchored to the top and bottom. It doesn’t matter, but it will affect the pixel values of the height of the RectTransform. That may be relevant when moving rectangles from script.
In any case, only the width anchors affect whether a rectangle stretches relative to screen width on wider screens, or moves to the left or right side of the screen as it widens. The visible height of the rectangle will always have the same relative percentage value on any screen.
But, you will have to go through and do the layout again if you change the reference resolution of your canvas, or the match mode. Pick a reference height for your expected devices, and expected upscaling and downscaling from the reference height. Lock it in, and determine the reference width for a 4:3 aspect ratio. Set the Game View to a 4:3 aspect ratio, such as the reference resolution, or just 4:3. Then, redo all of your layout.
It should be stable after that. Then you can go to wider aspect ratios and use the width value of anchors to affect how a rectangle moves or stretches as the screen goes wider.
(For any other readers, this is all for landscape, not portrait. For portrait, all of the principles are the same, but you set the Canvas Scaler to match width. You also pick a reference width and use algebra to determine the height. Anchors only matter for screen height, etc.)