1

I did realize that I may need to scale down my UI.

I can resize each element, and scale them down, but before spend long hours doing so, I was wondering if there is any way to scale the whole canvas down (or up, in case you need to enlarge the UI), so all the elements on it will scale accordingly.

  • Canvas cannot be sized since it occupies the whole screen (for screen canvas). You can child all your UI items under one parent object and scale this one down. It becomes the canvas (somehow). You could also play with the reference pixel per unit, reference resolution but I find it to be a massive pain as what you see is no more what you get... – Everts Mar 29 '16 at 05:38
  • I see, I did indeed search and found nothing, beside the canvas scaler, which influence the resolution thou. –  Mar 29 '16 at 05:48
  • 3
    Couldn't be easier. Just make a new panel. Put all the items under the panel. scale the panel as you wish. – Fattie Mar 29 '16 at 14:00
  • That may be a quick solution; I just need to see if adding an extra panel may cause problems on the code that access the various elements of the UI. Thanks! –  Mar 30 '16 at 09:44
  • Possible duplicate of [Scaling GUI.TextArea with Screen Size](https://stackoverflow.com/questions/36267658/scaling-gui-textarea-with-screen-size) – Fattie Feb 04 '19 at 13:16

1 Answers1

2

Scaling UX to screen size is 100% built-in to Unity.

However, they made a dreadful mistake in the interface which is one of the funniest mistakes in Unity, and it still hasn't been fixed after years.

You just have to select "scale with screen size", they accidentally left the wrong default. It's just one of those funny things about Unity.

Fully explained here: https://stackoverflow.com/a/36268018/294884

Fattie
  • 27,874
  • 70
  • 431
  • 719