I have a game I am porting to Windows. It is intended to only be played on a windows device that has a touch screen (ie Windows phone 8 or 8.1 or I guess a windows tablet).
I have code similar to this in several places in my game
#if (UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER)
... editor / standalone/ web keyboard code in here ...
#elif (UNITY_IPHONE || UNITY_ANDROID)
... IPhone / Android touch code in here ...
#elif (UNITY_WSA_10_0)
... Windows phone touch code in here ...
#endif
I am wondering should I be using #elif (UNITY_WSA_10_0)
or should I be using #elif (UNITY_WSA_8_0 || UNITY_WSA_8_1)
OR I also see that I could use WINDOWS_UWP
For tablet/phone you should probably be using Input.touchSupported.
UNITY_WSA_* defines mean various versions of Windows Store (depends on SDK you chose).
WINDOWS_UWP is for compatibility with Microsoft, they define this in Visual Studio when building Universal 10 apps.
Ok,
Let me make sure I understand. My code should look like:
if (Input.touchSupported)
{
... IPhone / Android / Windows phone / Windows tablet touch code in here ...
}
else
{
... editor / standalone/ web keyboard code in here ...
}
So when do you use UNITY_WSA_10_0, UNITY_WSA_8_0, UNITY_WSA_8_1, or WINDOWS_UWP?
I also have some code that is targeted specifically for various playforms (example saving game data, desktop saves it one way, Web saves another, Android another way and Windows a different way). Is that an appropriate use of these defines?
If you don’t care about Windows Store SDK, and only care about Windows Store platform, simply use UNITY_WSA, if your code some how depends on Windows Store SDK, then use UNITY_WSA_10_0, UNITY_WSA_8_1 or UNITY_WSA_8_0.
I guess, start with UNITY_WSA, and see how it goes.