Introducing Universal Windows Applications in Unity

We are pleased to announce the full support for Windows Phone 8.1 and Universal Windows Applications with the release of Unity 4.5.3. We’ve been working very hard to put our finishing touches on it since its beta program announcement back in April. It is available for download today!

What is it all about?

With the help of Universal Windows Applications, you can now build your Unity game once and target all Windows devices – desktops, laptops, tablets and phones running Windows/Windows Phone 8.1 or higher. On Windows devices, Universal Apps behave identically to Windows 8.1 apps, which Unity has supported since 4.3. On Windows Phone devices, Universal Apps run as Windows Phone 8.1 apps, which is a new feature of Unity 4.5.3.

Figure 1. Universal Applications build window

What does Windows Phone 8.1 bring to table?

If you worked on Windows Phone 8 and Windows Store games in the past, you know that even though the two platforms are similar, they still have their differences. With Windows Phone 8.1, that changes. There are no longer two separate platforms; they have converged to a single one. To reflect that, building for Windows Phone 8.1 is located under Windows Store platform in our Editor.

Other features of Windows Phone 8.1 player include:

Access the full power of .NET 4.5.1 in your C# scripts (Windows Runtime APIs, async/await, etc.);

GPU profiling is now available thanks to a new graphics driver for Windows Phone 8.1 (On devices which received the driver update).

Figure 2. GPU profiler running on Windows Phone 8.1

How do Universal applications work?

Figure 3. Universal app Visual Studio solution

So what does the name “Universal” mean? When you press build, Unity will generate a Universal app Visual Studio solution, which will contain 3 projects: ProjectName.Windows, ProjectName.WindowsPhone and ProjectName.Shared (as illustrated in Figure 3).

The shared project, as its name implies, contains all the shared elements: XAML layout, Unity data and asset files.

Target specific projects (ProjectName.Windows and ProjectName.WindowsPhone) contain platform specific files: application manifests, icons, splash screen and tile images. Since Windows 8.1 and Windows Phone 8.1 aren’t binary compatible, each project will also contain their own set of DLLs. Fear not – Unity will automatically make your managed plugins compatible with either target.

When you press the deploy button in Visual Studio, only the necessary files will get copied to the target device (or local machine, if you prefer), thus minimizing the application size which the user would have to download from the Windows Store.

17 Comments

@MSW: Since WinRT apps don’t use Mono, and instead use the .NET framework which is preinstalled on the devices, we can get away by using Microsoft C# compiler to build scripts. The downside, of course, is that you have to wrap such code in ifdefs, as it won’t work on any Mono platform.

@Hemodroid: I’m running Update 3 myself on all of my machines – I haven’t experienced such problems. What kind of errors are you getting? Did you try to delete the generated VS solution instead of building on top of it? What exact VS version do you have?

Finally!, couple of questions:
-Do we need only one archive built in VS (xap or whatever) or we need to build both the windows solution and the phone solution?
-What about the windows phone sdk requirements?