⭐ UNIVERSAL DEVICE PREVIEW ⭐ - get a real preview of your game

Multi Device Preview 1.5.2 has been released on the asset store :slight_smile:

1.5.2 - 05/04/2018
• (Fix) Android crash with Unity 2017.3.

1.5.1 - 30/03/2018
• Changed default hotkeys for Unity 5.0 to 5.2.
• (Fix) Android crash with Unity 2017.3.
• (Fix) Removed automatic cameras when custom list is empty.

1.5.0 - 21/02/2018
Version 1.5 contains several important changes in how to use the plugin. It is recommended to do a clean re-install by removing the MultiDevicePreview folder before importing the update.
• There is no more PreviewManager prefab, it has been replaced by the Settings Window.
• PreviewManager hotkeys have been replaced by MenuItems hotkeys. They now works anywhere within the editor.
• New feature: Preview device resolutions are automatically added to the GameView presets.
• Auto-refresh now works in edit mode. Other modifications:
• Support of Unity 2018.1.
• New feature: Screenshot Window to easily take screenshots in the editor without a manager.
• It is possible to use prefabs as screenshot overlay canvas.
• You can now specify a waiting time in seconds between each screen resize in GameViewResizing mode.
• Several API changes, see the Documentation for more infos.

Hi,

I’m considering purchasing this s/w. I’ve been looking at your s/w and xARM and I’m leaning towards your plugin. However I had a question. How solid is it, have all/majority of bugs been worked out? I’m on Unity 5.6f1 (64bit) Mac. I don’t have time to be testing bug fixes so just wanted to ask before I purchase how stable the plugin is.

Thank You.
Regards.

Hello,

Well, I did all I can to make that asset as robust as possible. When a customer raise me a bug I do my best to solve it as soon as possible; like you can see in the asset reviews on the store for both Ultimate Screenshot Creator and Multi Device Preview Gallery.

On the multi device preview there is actually no known bug, so it should work perfectly :slight_smile:

There is a know minor bug on the screenshot capture part on Android devices with old SDK, only when the player settings is not set correctly by the developer, on which I am currently working.

I hope I have reassured you, do not hesitate if you have more questions,

Best regards,
Arnaud Emilien

Sounds good Arnaud. I’ll go with MDP. Thanks.

Regards.

So far it’s looking good. One thing I noticed, the Auto refresh setting is not synced with the Gallery Settings (GS) window and Gallery Window (GW). Enable on GW, disable on GS but in GW it’s still on. FYI.

Also I had a question. There is a blink on my Scene and Game window whenever refresh occurs. Is this expected? What I mean by that is that the window blinks like it’s being repainted with each refresh.

Regards.

When compiling to device (iOS) I get a linker error complaining about iOSUtils.m.

clang: error: no such file or directory: ‘/Users/thomassuchecki/tmp/clumsy-build/clumsy-build/Libraries/AlmostEngine/Plugins/iOS/iOSUtils.m’

clang: error: no input files

I’ve moved the iOS dir with the Utils file to the /Assets/Plugins but am not getting the error above. If I don’t want any screenshot functionality in my runtime, is there a way to remove this dependancy completely from my project?

amazing tool.

1 Like

Thanks for purchasing Multi Device Preview :slight_smile:

  • this is strange. I just tested it several times and everything works fine :confused: Can you confirm me that you have the version 1.5.2 (in about) ?

  • yes this is expected. With Unity you can not render UI outside the gameview, so to create the accurate previews I have to render each of them in the gameview with specific resolutions etc., which creates a blinking.

  • Try removing the Plugins folder, and remove iOSPostProcessBuild.cs in Scripts/Utils/Editor it should do the job. If it does not work I can look at a proper way to do it.

Best regards,
Arnaud

I was able to reproduce the issue. In fact the setting is well synced but Unity does not repaint windows when there is no need. If you click anywhere in the other window it will repaint it and you will see the setting is actually updated. Thanks for the info I will manually call a repaint on those windows.

Hmm, I tried removing iOSPostProcessBuild.cs, still get the error. In fact I remove the whole plugin, cleared build directory in Xcode and did a clean and I’m still getting references to the iOSUtils library. Is there a setting in Unity where this library is being specified. At this time I can’t build for iOS device.

By the way I’m running Unity 5.6.5f1 (64bit) on Mac.

Edit: Ok I created a whole new directory for a new build and that worked. As in I was able to compile for the device without the plugin installed. I’ll try removing the iOS…cs file with a new dir and see if it does the trick. Any idea why this is even happening, shouldn’t it build fine for iOS by moving the Plugins dir as the manual says?

Edit2: When I remove the iOSPostProcessBuild.cs and the Plugins dir I get these errors in Xcode:

Undefined symbols for architecture arm64:
  "__AddImageToGallery", referenced from:
      _iOsUtils__AddImageToGallery_m2462700307 in Bulk_Assembly-CSharp_0.o
      _iOsUtils_AddImageToGallery_m3420591291 in Bulk_Assembly-CSharp_0.o
      _TextureExporter_ExportToFile_m3900510639 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _iOsUtils__AddImageToGallery_m2462700307)
  "__HasGalleryAuthorization", referenced from:
      _RequestAuthAtStartup_Start_m2530595208 in Bulk_Assembly-CSharp_0.o
      _iOsUtils_HasGalleryAuthorization_m2198952795 in Bulk_Assembly-CSharp_0.o
      _iOsUtils__HasGalleryAuthorization_m1930721756 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _iOsUtils__HasGalleryAuthorization_m1930721756)
  "__RequestGalleryAuthorization", referenced from:
      _RequestAuthAtStartup_Start_m2530595208 in Bulk_Assembly-CSharp_0.o
      _iOsUtils_RequestGalleryAuthorization_m512474017 in Bulk_Assembly-CSharp_0.o
      _iOsUtils__RequestGalleryAuthorization_m4140012953 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _iOsUtils__RequestGalleryAuthorization_m4140012953)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I just want to be able to build for the iOS device, if I need the Utils lib for now I’m OK with that, I’ll remove it when I’m doing a final build, but when I include it I get the other error I stated before. Is this working for you and just not working for me, or is it a bug?

Edit3: I think using a new dir made a difference, with the plugin installed I now get the following error:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_PHPhotoLibrary", referenced from:
      objc-class-ref in iOSUtils.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I don’t have the time to be debugging this. Are you not seeing these errors?

I have to tell you. In the editor I’m really impressed with this s/w but compiling for device is completely ruining the experience. At this point I don’t know if I’m doing something wrong or if there is an issue.

Hello,

I am sorry you experienced so many issues when removing the plugin from the build :confused:
I will send you as soon as possible a version where you can set a flag and comment the code that is not needed.

If you compile with the plugin enabled, on iOS you need to add the Photo framework as a dependency. Select iOSUtils.m and add Photo in the framework list.

Hi,

Ok I think I figured it out. I don’t normally work in Xcode much, so am not familiar where/how make necessary changes. I found that under Build Phases in the Link Binary With Libraries I could add Photo.framework. When I did the linker error went away. Just an FYI, but you might want to include those steps in the manual, in case someone else who’s not familiar with Xcode (like me) comes across the same issue. I still think having an option to simply not build anything for the target device would be useful.

By the way is there a better way to include the framework? When I clicked on the iOSUtils.m I did not see any place where I could specify the framework.

Regards.

I am glad you got it working :slight_smile:

To set it more easily when select iOSUtils.m look in the Plaform settings, then rarely used frameworks, and then check Photos. I will improve the documentation for that.

I working on a build free version, I will send you a private message when its done.

2 Likes

Thanks. Not sure if you have my contact info, if you need my email let me know please.

By the way when I click on the iOSUtils.m in the Xcode I don’t see Platform Settings:

3466384--275161--Screen Shot 2018-04-18 at 10.52.43 AM.png

That change has to be made in Unity.

Thanks that works. I just assumed (I know…) that it was in Xcode since it’s under iOS specific section. With that change it works without issues and no need to modify Xcode.

Also I’ve received your package and tried it, that also is working. I’m not seeing any issues at this time, hope that’s the case. You might want to be more specific in the documentation though. I’ve been using Unity for a long time and I’ve never seen a dependancy setting on a library, never ran into it before. Appreciate the introduction.

Thanks for the fast support.

Regards.

1 Like

You are welcome. Thanks for your feedbacks, I will improve the documentation for the next version.

FYI. Suggestion for improvement. Having Update button in the Settings window as well. I find that whenever I need to manually update the Gallery and gallery window is on a separate monitor it breaks the workflow having to go between the two windows to do manual update. Having an update button (perhaps in the GALLERY section) in the Gallery settings would speed things up. If you think it’s a good idea, you could think about adding it there.

Thanks for the idea. Note that you can also use the shortcuts from anywhere in the editor to update the gallery and device windows.

I’ll do that. Thanks.

Edit: I’m impressed. Left a review. Thanks for creating this.

1 Like