유니티 4.5 나오면서 윈도우폰 윈도우 스토어 관련한 기능 추가, 개선 그리고 버그 픽스가 많이 이뤄졌습니다. 유니티 사이트의 4.5버전 Release notes 에서 윈도우폰과 윈도우 스토어 관련한 내용만 가져와서 공유 합니다. 윈도우 스토어 버전으로 유니티 게임을 포팅하는 분들은 아래 내용 참고하셔서 업데이트 하시길 바랍니다. (각각의 내용에 대해서는 차후에 알아보도록 하겠습니다.)

   

Windows Store apps features:

  • Added Compass API to check for compass accuracy.
  • AppCallbacks methods InvokeOnUIThread and InvokeOnAppThread will detect deadlock and throw exception. Added TryInvokeOnUIThread and TryInvokeOnAppThread, which return true or false instead.
  • Support for programmatically opening touch screen keyboard.
  • In Player Preferences added support for scaled resources: splash screen, medium and wide tile, store and small logos.
  • In Player Preferences added support for Windows 8.1 scaled resources and related settings.
  • New APIs for changing system cursor - AppCallbacks::SetCursor, AppCallbacks::SetCustomCursor, WSA.Cursor.SetCustomCursor.
  • Added support for changing screen resolution on Windows 8.1.

   

   

Improvements

  • Windows: Unity Editor will fallback to DirectX 11 if DirectX 9 is not available, instead of showing the dialog graphics were not initialised.
  • Webplayer: Java Webplayer Installer is now updated with the latest Java security requirements.
  • Windows Phone: The preview resolution is as close as possible to what the user requested.
  • Windows Phone: Non uniformly scaled meshes use less memory.
  • Windows Phone: Webcam resolution selection is now chosen by the aspect ratio and the total area of the preview.
  • Windows Store Apps / Windows 8.1: Added support for SwapChainPanel, it will be used in XAML project files generated for Windows 8.1, you can still use SwapChainBackroundPanel if you want.
  • Windows Store Apps / Windows 8.1: Changed template code to handle application launch through protocol, basically we added OnActivated event handling in App.xaml.cs and App.xaml.cpp files.
  • Windows Store Apps / Windows Phone: Graphics related memory optimisations. Mesh and texture uploads use less memory.
  • Windows Store Apps: When building, instead of storing absolute Unity paths inside a project, they will be store in UnityCommon.props file instead, this way making it easier to share project between several PC's.
  • Windows Store Apps: *.pdb, *.ilk, *.exp for Unity libraries won't be provided in Release, Master configurations, thus reducing the exported solution size significantly.
  • Windows Store Apps: AppCallbacks::UnitySetInput() made safe for multiple invocations.
  • Windows Store Apps: ComputeBuffer.SetData will work correctly.
  • Windows Store Apps: If running other OS than Windows 8/8.1, reports it as "Unknown Windows version ()" rather than hardcoded "Windows 8"/"Windows 8.1".
  • Windows Store Apps: NativeRenderPlugin example now properly works on Windows Store Apps.
  • Windows Store Apps: Removed splash screen after the first frame is drawn.
  • Windows Store Apps: D3D applications will consume less CPU percentage thus preserving battery.
  • Windows Store Apps: System.deviceModel will return a valid value whenever possible.
  • Windows Store Apps: Unity will output used Windows SDK version in UnityPlayer.log.
  • Windows Store Apps: Unity won't spam harmless D3D warning DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET in Debug builds.
  • Windows Store Apps: Webcam support is more stable; webcams now also support MJPG streams.
  • Windows Store Apps: Windows 8.1 player will now respect CompositionScale of SwapChainPanel.
  • Windows Store Apps: You can now generate C# Assembly-Charp* projects (in BuildSettings window) which will be referenced from generated solution, allowing you to easily debug and change your scripts on the fly, the only thing to keep in mind, if you'll add/remove serialised fields in classes, you'll need to rebuild your project from Editor to compensate for changed serialised data.
  • Windows Store Apps/ Windows 8.1: SystemInfo.deviceUniqueIdentifier will return value from AdvertisingManager (http://msdn.microsoft.com/en-us/library/windows/apps/windows.system.userprofile.advertisingmanager.advertisingid.aspx)
  • Windows Store Apps/Windows Phone: MaterialPropertyBlock property setting now supported on these platforms.
  • Windows Store Apps/Windows Phone: Unity allocates fewer managed objects for its own internal bookkeeping allowing .NET garbage collector to work faster. Overall memory consumption is also reduced.
  • Windows Store Apps/Windows Phone: Added support for animated script variables .
  • Windows Store Apps/WP8: Better handling of managed objects, causes less pressure to Garbage Collection.

       

       

    Changes

  • Windows Store Apps / WP8: Unity won't spam warnings for incorrectly unloaded assets, unless explicitly specified.
  • Windows Store Apps: Independent Input Source is disabled again by default due to delays in Windows Update.

       

    Windows Phone / Windows Store Apps Fixes:

    • Application.internetReachability will now return proper values.
    • Creating ArrayList from native array will work correctly.
    • Field with AnimationCurve[] no longer crashes app.
    • Fixed a bug where Assembly Preprocessor would crash when it tries to load a PDB file that does not match DLL.
    • Fixed a regression, where class (derived from MonoBehavior) variables were not initialised if there's a private constructor.
    • Fixed animated script variables update when same script attached multiple times.
    • Fixed build failure when using Serializable or NonSerialized attributes in UnityScript.
    • Fixed detailed view of memory profiler.
    • Fixed Input.inputString not working with Unicode characters.
    • Fixed shadows in Editor when it's set to Windows Store Apps/Windows Phone 8 target and graphics emulation is set to Direct3D 11 Feature levels 9.1/9.3.
    • If you don't specify full path for Profiler.logFile, the file will be saved in the temporary folder, also if there's an error while creating a file, appropriate message will be printed in the log.
    • OnAudioFilterRead function will work correctly.
    • Plugins won't be ignored while in Editor if they're compatible.
    • Release/Master players are now compiled with /Oi (Generate Intrinsic Functions) optimisations.
    • Scripts with identical names get executed correctly.
    • SendMessage will correctly work in cases when argument is a native array.
    • Start, Update and similar methods in scripts derived from generic base class are now properly invoked.
    • Texture2D.ReadPixels now works on Windows Phone 8 and other platforms that use BGRA back buffer/render textures.
    • Unity will not call Update on Windows Phone 8/Windows Store Apps if it's static.
    • WP: Fixed a bug where accessing graphics device in OnApplicationPause() handler causes a crash if device screen times out.
    • WP: Fixed a crash which would sometimes occur during scene load if user pauses the game at the appropriate moment.
    • WP: Fixed an error, where some of the serialization functions were not found, during build from Unity.
    • WP: Fixed an issue where .NET would throw a generic constraint violation exception when calling a method that has a generic constraint, overrides base class method, returns IEnumerator and calls a delegate which has the same generic parameter constraint
    • WP: Fixed an issue where screen would get rotated after rendering screen to a texture while in landscape orientation.
    • WP: Fixed an issue where Visual Studio would sometimes refuse to deploy game to the phone.
    • WP: Fixed an issue which caused player to crash on application resume when unsupported shaders were present in the scene.
    • WP: Fixed reflections not working on standard pro asset water when application is in landscape orientation.
    • WP: Fixed spotlight culling when application is in landscape orientation.
    • WP: Fixed SystemInfo.operatingSystem and SystemInfo.processorType to report correct operating system on all players and correct CPU name on ARM.
    • WP: Generic instance methods now don't throw InvalidOperationException when defined in generic instance types.
    • WP: Graphics capabilities related to depth sampling are now correctly detected on Adreno 3xx GPUs (note: still doesn't work on Adreno 2xx due to driver issues).
    • WP: Make LocationService status update more reliable and accurate.
    • WP: Object.SendMessage() will now not throw missing method exception when it tries to send message to private inherited method.
    • WP: Project will now build correctly when project directory contains multiple .winmd files with the same filename.
    • WP: Resolution will now be correctly detected on phones than have larger screen than 768x1280.
    • WP: Screen.dpi now returns physical device DPI, rather than 0.
    • WP: Splashscreen is now positioned correctly on devices with aspect ratio other than 15:9.
    • WP: Usage of System.Reflection.BindingFlags and System.TypeCode are now not redirected incorrectly to WinRTLegacy.
    • WP: Using System.ApplicationException now doesn't throw missing method exception.
    • WP: Using System.Security.Cryptography.ICryptoTransform now doesn't throw missing method exception.
    • WSA: Application won't crash, when snapping is performed during application load.
    • WSA: Correctly serialize AnimationCurve if it's a null object.
    • WSA: Fix serialization of serializable types without public default constructors.
    • WSA: Fixed a rare WACK failure where 'Crashes and hangs' test woudn't pass.
    • WSA: Fixed an issue, where application would sometimes crash when calling RaycastHit.lightmapCoord.
    • WSA: Fixed an issue, where you couldn't enable Independent Input source, even if you enable that option in Player Settings
    • WSA: Fixed animated script variables when using inheritance or SerializeField attribute.
    • WSA: Fixed broken webcam image due to incorrect stride in YUY2 decoding routine.
    • WSA: Fixed buttons on virtual joystick 0.
    • WSA: Fixed crash caused by InvalidCastException in Boo.Lang.dll.
    • WSA: Fixed ctrl key stuck when alt is held down.
    • WSA: Fixed Cursor.SetCursor() does not hide native system cursor.
    • WSA: Fixed exception in graphics code.
    • WSA: Fixed forcing orientation on startup.
    • WSA: Fixed hang when resuming app with Independent Input Source enabled.
    • WSA: Fixed incorrect windows size created on Windows 8.1.
    • WSA: Fixed input events and Input.inputString broken on touch devices.
    • WSA: Fixed Input.multiTouchEnabled.
    • WSA: Fixed mouse events when using touch screen at the same time.
    • WSA: Fixed mouse position when resolution is not fullscreen.
    • WSA: Fixed post build event in generated Visual Studio project, if the project name contains spaces.
    • WSA: Fixed Screen.fullScreen property.
    • WSA: Fixed selecting this platform in build settings clears Development Build setting.
    • WSA: Fixed soft cursor going outside of screen.
    • WSA: Fixed UnityScript.lang.dll preprocessing stage - serializing UnityScript.Array will not crash anymore.
    • WSA: Fixed WWW.progress returns on 1 and 0.
    • WSA: Handle exception when receiving data from
    • WSA: Handle forbidden characters in product name.
    • WSA: Ignore linear color space setting, not supported on this platform.
    • WSA: Implemented better error message if application is already running when Build & Run.
    • WSA: Implemented better error message when doing Build & Run to network location.
    • WSA: Improve mouse position accuracy in scripts.
    • WSA: Instead of hardcoded path query env variable "ProgramFiles(x86)" to get path to Program Files.
    • WSA: Make 'Development Build' checkbox available, so that profiler usage is consistent with other platforms.
    • WSA: Make autorotation work for multiple specific orientations.
    • WSA: Plugins no longer fail project builds in the Editor.
    • WSA: Select Release or Master configuration based on 'Development Build' setting when Build & Run.
    • WSA: Serialization Weaver will now not crash when there are fields in C# scripts which Type is defined in WinRT API.
    • WSA: Set location desired accuracy as given by user on Windows 8.1.
    • WSA: Show touch screen keyboard for GUI text fields.
    • WSA: SystemInfo.devicetUniqueIdentifier will always return a valid string even if Advertising ID is disabled on Windows 8.1, please refer to documentation for more information.
    • WSA: Touches will not generate mouse clicks, when simulateMouseWithTouches=false.
    • WSA: Unity Editor will now correctly detect unavailable APIs when building Windows Store App game.
    • WSA: Unity will output a more user friendly message when .NET 4.5 or .NET 4.5.1 are not available.
    • WSA: Unity will throw an error if you're passing incorrect URI to Launcher.
    • WSA: Unity won't spam 'No such host is known' in certain cases when connecting to profiler.
    • WSA: Unity won't specify Content-Type header when using WWW, if Content-Type header is provided by user.
    • WSA: UnityScript.Lang.Array will not be serialized, thus will not produce a crash.
    • WSA: UnitySetInput won't crash when Independent Input Source is enabled.
    • WSA: When building player, Unity will mark all files as non read only, so overwriting shouldn't be a problem. This should solve issue for Perforce user, where some of the files were being marked as read only.
    • WSA: When generating Assembly-CSharp projects, they will reference WinRTLegacy.dll now.
    • WSA: When using Debug configuration, and D3D11 debug layers are not available - an informational message will be printed instead of error.
    • WSA: WWW will correctly send POST data.
    • WSA: When compiling scripts targeting Windows 8.1, all .NET 4.5.1 for Windows Store Apps references will get added.