xARM: Aspect and Resolution Master [v1.9]

NEW: *** Unity 2019.1 support ***

xARM: Aspect and Resolution Master ★★★★★
is the powerful and easy-to-use editor extension that helps you to beat display fragmentation.
It contains the tools ‘xARM Preview’ and ‘xARM Gallery’ to give you a real preview of your game.

Get it now! | User Guide

xARM’s main features:

  • Preview at device’s physical size and DPI
  • Verify pixel perfectness
  • Get a real preview of all targeted resolutions and display diagonals
  • Compare multiple resolutions while editing
  • Export ScreenCaps as PNG files
  • Preview high resolutions without changing Editor layout
  • Save time and trouble, boost development


No need to build to a device only to check:

  • Is the GUI usable at resolution xy?
  • What is the physical size of a button?
  • Do the atlases switch correctly?
  • Does the translation fit into its space?
  • How does a change effect other resolutions?
  • Does the player exactly see what was intended?

With xARM you see everything at a glance. No need to be daunted by display fragmentation.
xARM yourself!

Included resolutions and display diagonals (‘ScreenCaps’)
All relevant (and semi-relevant) iOS, Android, Windows Phone 8 NEW v1.04+, WinRT NEW v1.04+ and Standalone (up to 4K NEW v1.7+) devices are covered by the included resolutions and display diagonals.
Every device resolution comes with additional information (popularity, etc.) to help you to get an overview and focus on the important ones.
Just select what you like to preview!
Still not enough?
Just one line of code to add custom resolutions!

Android navigation bar support NEW v1.02+
The Android navigation/system bar (used by devices without hardware buttons) reduces the usable resolution, but now for every Android resolution there is the corresponding system bar version in xARM.
Check how your game really looks!

Preview in Editor, Pause and Play mode
ScreenCaps can be updated automatically or manually in Editor, Pause and Play mode.
Instantly see results of changes and also preview in-game-only content (Unity’s builtin GUI, etc.).
You have full control!

uGUI support
Unity’s new GUI system uGUI is supported, including its Constant Physical Size feature.
Preview the actual physical size of your GUI based on the DPI of the targeted device (not Editor). NEW v1.6.1+
Unleash uGUI’s full potential on all devices with the help of xARM!

Supports all other extensions
xARM supports all other extensions (like NGUI, etc.) and also simple and complex GUIs.
You can preview your GUI only in Play mode (e.g. Unity’s old builtin GUI)?
Your extension or image effects need some frames to react to resolution changes? NEW v1.03+
Also no problem!

Easy-to-use
Just import xARM into your project and set a few settings.
That’s it!

Improves workflow
How do you currently verify how your game looks with different resolutions?
Switch from resolution to resolution? Build to different devices?
Seeing different resolutions at the same time and previewing at physical size right in the editor will save you a lot of time and trouble.
Boost your workflow!

Better quality games
xARM is the only comfortable way to verify your GUI and 2D/3D content is resized and positioned correctly and also sharp, readable and easily touchable on every device you are targeting!

ScreenCap export NEW v1.04+


Need a screenshot of your game at resolution xy?
With xARM you can export a single or a batch of ScreenCaps as PNG files.
Export got even easier with hotkeys. NEW v1.05+

xARM Preview:


Detailed Preview
See how your game really looks with any resolution you like to check, even if the resolution is higher than the available space (Game View’s resolution is limited by it’s window size).
xARM Preview’s active resolution can be synced to the Game View for easy tweaking. NEW v1.03+
Switch between resolutions is only one hotkey away! NEW v1.6.1

Preview at physical size, pixel perfect or scaled
Just one click to preview any device’s resolution at physical size to verify touch target sizes, etc. NEW v1.01+
Or activate pixel perfect mode to check for scaling issues, blur, etc. NEW v1.01+
Much more convenient than building to device!

Live Preview NEW v1.04+
Preview your game at e.g. physical size while it’s running in Play mode.

xARM Gallery:


Compare while editing
Preview different resolutions at the same time and see how changes effect each resolution.
Want to switch to a specific resolution? Just click on the preview.
Instantly see and fix issues while editing!

Scale Ratio NEW v1.02+
With the Scale Ratio you can easily determine the physical size of each display (‘ScreenCap’) while comparing multiple resolutions. By default Scale Ratio’s size is set to the recommended touch target size (‘fingerprint’), but you can change its size to fit your needs.
Everything smaller than the Scale Ratio (white box) is considered as not easily touchable.

Features:

  • Covers all relevant (and semi-relevant) devices of:
  • iOS*
  • Android*
  • Windows Phone 8*
  • WinRT*
  • Standalone*
  • Preview at physical size (device dimensions; 1:1phy) and pixel perfect (1:1px)
  • Preview in Editor, Pause and Play mode
  • Compare multiple resolutions and their physical scale
  • Get an overview of resolution popularity, etc.
  • Android navigation/system bar resolutions included
  • Supports uGUI (including Constant Physical Size) and all other extensions (NGUI, etc.)
  • Export ScreenCaps as PNG files
  • Get focused by a sortable overview of resolution properties (popularity, devices, …)
  • Manual and live update, instantly see results of changes
  • Huge time and trouble saver, will pay off soon
  • Improve user experience on all targeted devices
  • Performance optimized code
  • No or (in very rare cases) minimal coding required
  • Offers delegates, if you like to hook your code
  • Full source code access (C#)
  • Supports Unity Free and Pro (2019.1, 2018.x, 2017.x & 5.x)

Any kind of feedback is highly appreciated!

See AssetStore for more screenshots.

Hey @Thavron!

I’m really interested into your stuff but I’d really like to give this a try, I have a lot of complicated stuff with NGUI and some code I made to autogenerate it… So I’d like to see if your stuff will work with mine.

My basic aspect ratio is 16:9 but I’d like to enable people with 4:3 or so to see quite the same thing if not the same…
For the moment, my only option was to put black borders and keep 16:9 in it… Until I saw your post, so i’m really interested but i can’t buy it to you without a demo, a way to test all it, etc etc

If you could contact me :slight_smile:

Hi @Eraile

xARM uses Unity’s GameView to create the ScreenCaps. So there shouldn’t be any problem.
However if your GUI is created on startup (e.g. inside Start(), not Update()) and doesn’t react to resolution changes a little coding is required.
EDIT: xARM v1.0+ supports all GUI systems.

You can check that by resizing the GameView manually in editor or play mode (ensure the resolution changes by GV’s Stats).

  • If every part of your GUI reacts to that, xARM will work without coding.
  • If the GUI is static, you have to call the function to create or update the GUI from inside xARM.
    That is already on my feature list (something like xARMOnPreRender() where you can put your function call). Now it will get a higher priority. :wink:
    If you need it now, let me know and I’ll give you a pre-release version or I’ll help you to implement this.
    EDIT: This is now implemented. xARM v1.0+ includes delegates to hook your custom code to. So it is very comfortable to run your code before or after a ScreenCap is updated.

I hope this answers your question, if not please let me know.

A new xARM version is awaiting approval.
It comes with the new “xARM Preview” window.
Have a look at my first post to see the new screenshots.

The new xARM version is now available in the Asset Store.
Check out the new xARM Preview window and let me know how you like it.

@Eraile: I’ve sent you a PM.

xARM is now available for a massively reduced price while in beta.
Do not wait too long, v1.0 is around the corner.
(Contact me if you paid the old price.)

xARM v1.0 is awaiting approval. Be informed, beta is nearly over. Still you can get it for the beta price.

xARM now includes delegates to enable support of all GUI systems (even the rare “static” cases).
@Eraile: That’s what I wrote about.

Changelog:
Added Delegates to run custom code:

  • OnPreScreenCapUpdate
  • OnPostScreenCapUpdate
  • OnFinalizeScreenCapUpdate
    and example how to use:
  • xARMDelegatesExample.cs

Added iPhone 5C and 5S
Performance improvements
Several Bugfixes

xARM v1.0 is now available. After about two months beta phase is over.
Many thanks to everyone who trusted in xARM and purchased it.

Still there are a lot of features I’ve planned to add.
If you miss something please let me know.

This looks really cool and useful. My only worry is that it would just add an additional layer of complexity to my projects that might not be worth it, or might act weird with some things.

Maybe make some videos showing it’s workflow in use with a couple different GUI systems and types of GUI.

One of my goals was to make xARM as user friendly and flexible as possible.
There is no real complexity to the user. It improves the workflow.

To setup xARM, just import it and select the resolutions you want to see.*
After that the workflow changes a little:

  • “xARM Preview” replaces the GameView (none interactive part).
  • Only for playing you need the GameView (its resolution is BTW also set by xARM).
  • ScreenCap update can be set to manual or auto for edit and pause mode.

That’s basically all ‘complexity’ xARM adds.

If something acts weird, you can simply deactivate xARM to check.
But that shouldn’t happen, because:

  • xARM is encapsuled, it doesn’t interact with* or integrate into your code.
  • No part of xARM is included in builds. It only runs in the editor.
  • Only Unity’s standard API is used, no reflection.

Will do that.

Thanks for your feedback techmage.

*Only in rare case you have to hook your GUI-Recreate function.

Do you actually see how it looks to scale?
ie: is the image preview actually at the same physical scale of each of the target resolutions?

xARM uses the GameView to render everything at the targeted resolution. So everything scales and repositions as usual.
If you for example select the ScreenCaps “iPad standard” and “iPad retina” you get two images, one at 1024x768px and one at 2048x1536px. In the editor windows these images are scaled to fit into much smaller space.

I’ve planned to make it possible to see the ScreenCaps at 1:1px (pixel perfect, 1px=1px) and 1:1 physical size (1cm=1cm, via PPI).
Is it that what you need? Which one? Both? If you need it I’ll give it a higher priority.
Edit: Both features are implemented in xARM 1.01+. It is now possible to preview your game at 1:1px and 1:1physical size (device dimensions).

Hope I understand you correctly and answered your question. If not please let me know.

HI,
Thanks for the reply.

I’ve found for a preview to be useful you actually need to see it at the real (or close to) physical size.
Just changing the aspect ratio only shows you positional changes (ex: using ngui anchors) but does not let you see usability issues with buttons etc becoming too small at certain resolutions.

So I’m after a solution that lets me “see” those issues without having to deploy to device all the time.

ex: My app (NGUI) is designed to a 1024 x 768 landscape resolution. Fine on desktop/iPad2

If I deploy to Galaxy S3 it re-positions fine at 1280 x 720 but now UI controls are too small.
I could atlas swap or my preferred method is just to tweak the camera orthographicsize to rescale the UI up a little.
But you need to see the 1:1 physical relationship to do this.

Does that make sense?

Also:

How is this different from the custom resolution display in the current Unity4.2 release?

Also:
How does this work with NGUI’s UIRoot options of Pixel Perfect, Fixed Size, Fixed Size on mobile + the various screen height settings?

ty!

1 Like

Hi sonicviz,
Thanks for your thoughts.

That’s exactly xARM’s goal.
The current version of xARM already helps you to see these issues.
Have a look at e.g. this screenshot. You can see five ScreenCaps in the Gallery, the first three are iPhones, the last two iPads (standard/retina). You can clearly see that the retina version’s button are much smaller.
But you are totally right, this could be better. Edit: Now it is better.

As I’ve described above I want to add a 1:1px and 1:1phy.-size option to the xARM Preview. Edit: xARM 1.01+ now features both options.
A further option I’ve planned is a scale ratio. Like a fingerprint on the ScreenCap to have a scale reference.
Everything smaler than this fingerprint is to small to touch easily. This will be very useful in the xARM Gallery because even when the ScreenCap is scaled down the scale reference remains.

What would you like the most?
May be I should make a poll what to add next…

That doesn’t change much. You can specify a custom resolution in addition to the builtins. That’s it.
The GameView’s resolution is still limited by its windows size. Take a look at this screenshot.
Try this: Select a resolution in the GameView and keep an eye on its resolution shown in its Stats while resizing it. As long as the GameView window is smaller than the selected resolution you doesn’t get the selected resolution.

In short: As usual.
NGUI (and all other GUI systems) react to manual GameView resizing the same as to xARM, because xARM changes resolutions by resizing the GameView. That (+ delegate hooks) enables xARM to support all GUI systems.
So a GameView at 1024x768px (check the Stats ;)) show exactly the same as the xARM ScreenCap at 1024x768px.

xARM v1.01.166 is awaiting approval.

Changelog:
xARM Preview:

  • 1:1px (pixel perfect) option
  • 1:1 physical size (device dimensions) option

Improved interaction with GameView
Several Bugfixes

@sonicviz: Your wish is my command. Now you found the solution. :smile:

xARM 1.01+ now offers an option to preview at 1:1 physical size.
The first time I saw the iPhone at physical size on my 15.4" screen I had to verify the size twice but it was correct. It looks smaller than I expected.

The new 1:1px option is a great help to check for blur, scaling issues etc.

Any else feature requests?

xARM v1.01.166 is now live.
Check out the new 1:1px and 1:1phy options.

Looks good.
Did you also implement “A further option I’ve planned is a scale ratio. Like a fingerprint on the ScreenCap to have a scale reference.” ?

What about some videos demonstrating use?

I’m still a little wary because I have a complex NGui setup and I don’t wish to add more code for this…does it work out of the box or do I have to modify my code in order to get it to display in real time? (use case: checking all functionality at device resolutions)

Not yet. Still on my list. EDIT: Now part of v1.02+.

I’m currently working on a video. Stay tuned. EDIT: See video in first post.

I’m 99% sure it will work out of the box without modifying your code.
For NGUI (and all other GUI systems) there is no difference between GameView resolution changes done manually or by xARM.
So if your GUI reacts to manual changes (as NGUI does) everything will work out of the box.
The video should make it more clear.

Finally I’ve finished the xARM overview video.
You can find it here: http://youtu.be/w7nmW3lS6-A or in my first post.