Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

⭐ ULTIMATE SCREENSHOT CREATOR ⭐ - perfect for marketing and ingame screenshots

Discussion in 'Assets and Asset Store' started by WildMageGames, Mar 17, 2017.

  1. JGoose

    JGoose

    Joined:
    Mar 12, 2015
    Posts:
    3
    Hello

    I've been using your plugin for roughly a year and it's been great. Though recently I have 3 questions I need a little help with if you don't mind.

    Can the screenshot save/discard menu be combined with a text input field to allow to user to name their own screenshots upon taking them instead of it being auto named from the settings.

    Can those screenshots be displayed in the gallery with their file names underneath.

    Is it possible to adjust the gallery to be sorted by date/most recent order. I've used linq for similar things in the past but your coding is definitely better than mine & I was wondering if there's any adjustment settings or documentation for this stuff i've accidently missed.

    Thankyou
     
  2. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Hello,
    Thanks for using Ultimate Screenshot Creator :)

    1- Yes, you could change the screenshot name just before exporting it.
    Add an inputfield in the canvas.
    Create a new monobehavior script called RenameScreenshots,add a reference to your input field, and create a rename method doing something like this:
    Code (CSharp):
    1. GetComponent<ValidationCanvas>().m_ScreenshotManager.m_Config.GetFirstActiveResolution().m_FileName = [your input field text value, something like m_Input.text ]
    Add the script to the validation canvas game object.
    Select the Save button and add a "onclick" event to call your new script and new method.
    Change the callback order to your script is called before the SaveCallback().

    2- Create a new gallery script that inherits from GridGalleryCanvas script.
    Create a copy of CustomizableGalleryImageItem.prefab and add text field in it, and set it as the default image prefab of the gallery.
    Override the InstantiateImageObject with something like this:
    Code (CSharp):
    1. public override GameObject InstantiateImageObject (TextureExporter.ImageFile image, int i, Transform parent)
    2. {
    3.     GameObject go = base.InstantiateImageObject(image, i, parent);
    4.    go.GetComponentInChildren<Text> ().text = image.m_Name;
    5.    return go;
    6. }
    3 - In your custom gallery script, override the LoadImageFiles with something like this:
    Code (CSharp):
    1. public override void LoadImageFiles ()
    2. {
    3.     base.LoadImageFiles (); // to load the images
    4.     m_ImageFiles.OrderByDescending(x=>x.m_CreationDate).ToList();
    5. }

    I hope you will have it working like you want, do not hesitate it you have more questions.
     
  3. JGoose

    JGoose

    Joined:
    Mar 12, 2015
    Posts:
    3
    Hi again WildMage,

    Thank you for the quick response the other week, I got the gallery displaying file names working no issues.

    I gave it a few weeks of changing things before getting back to you trying to make the other changes work but no matter what I change the screenshot name always defaults to whatever is set in the screenshot manager. On the debug log the renaming code is executed beforehand but it always exports as the pre set name.

    The gallery managed to partially work with creation date order but still sorts by alphabetical if multiple were taken on the same day strangely.

    Any other suggestions? Either way I have left a good review as the asset has been great regardless.
     
  4. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283

    Hello,

    I am sorry, I told you to change m_FileName but you need to change m_ResolutionName instead. You also need to have "{name}" as the ScreenshotManager screenshot name, {name} will be replaced with the user input text when you export the screenshot.
    Code (CSharp):
    1.     GetComponent<ValidationCanvas>().m_ScreenshotManager.m_Config.GetFirstActiveResolution().m_ResolutionName = [your input field text value, something like m_Input.text ]
    2.  
    Again, my mistake, I forget to actually save the list result. I just tested the following code and it works:
    Code (CSharp):
    1. m_ImageFiles = m_ImageFiles.OrderByDescending(x=>x.m_CreationDate).ToList();
    I hope this time you will get it working.
    Thanks a lot for your review :)
     
    Last edited: Nov 16, 2019
  5. JGoose

    JGoose

    Joined:
    Mar 12, 2015
    Posts:
    3
    Works brilliantly. Thank you!
     
    WildMageGames likes this.
  6. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    I am sorry, there is a compilation issue in the update 1.7.8 on iOS,

    If you encounter that error:
    Please replace that line by
    Code (CSharp):
    1. PhotoUsageDescription usage = AssetUtils.GetFirstOrCreate<PhotoUsageDescription> ("iOSPhotoUsageDescription", "Assets/");
    I just updated a fix on the asset store but the update can take several hours.
     
    Garrettec likes this.
  7. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    The update 1.8.2 is available on the asset store, please update if you use 1.8.1 to prevent the compilation issue on iOS.
     
  8. sebassander

    sebassander

    Joined:
    Dec 7, 2019
    Posts:
    3
    Hello I just bought your asset and I´m learning how to use Unity, do you have a specific tutorial how to add a "take photo" or "Screenshot" button for Android and iOS ?
    I´m reading your documentation but is a bit generic.

    Thank you!
     
  9. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Thanks for purchasing Ultimate Screenshot Creator :)

    The simplest way is to use the "TakeScreenshotButton" script. Just add it on the button of your choice. Then simply add a ScreenshotManager prefab in your scene, configure it as you need. The script will automatically call the Capture when clicked on.
     
  10. sebassander

    sebassander

    Joined:
    Dec 7, 2019
    Posts:
    3
    Thank you very much for your quick response!

    Now I wonder how do I get the screenshot without my UI, I´m using Vuforia and i want to get the screenshot only of my AR Camera, is it possible to do that?
     
  11. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Yes it is possible.

    There is several ways of doing it. For what you are saying, one way of doing would be to switch to "RENDER_TO_TEXTURE" mode, and to edit the CAMERA panel to add only the camera you want to capture. That way only your AR camera, without UI, will be captured.
     
  12. sebassander

    sebassander

    Joined:
    Dec 7, 2019
    Posts:
    3
    Do you recommend any special plugin or asset to share the taken screenshots to Facebook?
     
  13. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    I did not tested any of the social sharing asset, so I can not recommend any. For the best compatibility, try to look for assets that allow you to share an image from a texture or an image file.
     
  14. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Ultimate Screenshot Creator 1.7.10 has been released on the asset store :)

    1.7.10 - 16/12/2019
    • (Fix) Namespace for all classes
    • (Fix) AssetUtils error when updating from 1.7.8 to 1.7.9

    1.7.9 - 11/12/2019
    • (Fix) AssetUtils build error on iOS

    1.7.8 - 10/12/2019
    • (NEW FEATURE) Better alpha computation method for capturing scenes with transparent background.
    • (Fix) Waiting frame for Temporal Anti Aliasing
    • (Fix) iOS photo library not added automatically
     
  15. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Know issue on Android API >= 29

    There is currently an issue on Android when exporting to "Screenshot_Folder" for devices with API >= 29. Due to the last Android changes on privacy rights, the method used to get the folder is now longer valid. It will result in a fail to save the screenshots on Android. I am working on that issue, but due to the complete change of behavior in Android export management it will take some time.


    Edit: issue solved on 1.7.11
     
    Last edited: Jan 16, 2020
  16. GS796

    GS796

    Joined:
    Dec 16, 2016
    Posts:
    24
    First off - fantastic product! Makes creating and localizing app store screens bearable! One small improvement I would like to see for Ultimate Screenshot Creator- is to have check boxes for the Composers in the Composition section- just like you already support in the Batches and Resolutions sections. This would make it easier to keep a full screenshot setup with less tedious manual steps. I have multiple resolutions, multiple batches (for localization), and for each resolution I have a single composer- I'd like to keep all the composers in the inspector, and just enable the ones I need- as it is- I either have to continually replace 1 composer in the array slot 0, or generate way more screenshots and delete the huge number of excess that are generated.

    Small thing, but would make life a bit easier- I may just do it myself- but would like not to have to integrate changes as you update the project.
    Thanks for your consideration.
     
  17. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Hello,
    Thanks, I am glad you like the asset :)

    No problem, I will add a way to disable/enable easily the composers!

    What do you mean but "integrate changes" ?
     
  18. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    The issue with Android API >= 29 has been fixed; the asset has been updated and will be available soon in the asset store.
     
  19. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    You will find in the version 1.7.11 a way to enable and disable composers.
    I went a bit further and you can also override which composers and resolutions are enabled for each batch, that means that you could possibly do ALL your captures with only one click.
    The update 1.7.11 should be available soon on the asset store.
     
  20. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Ultimate Screenshot Creator 1.7.11 has been released on the asset store :)

    1.7.11 - 20/01/2020
    • (Fix) Android export on Android Q. On Android, screenshots are now saved in the external storage media directory.
    • (Fix) WebGL Export on iOS 12.
    • Added possibility to enable/disable composers from the manager settings.
     
  21. ziemlich3D

    ziemlich3D

    Joined:
    Aug 21, 2017
    Posts:
    24
    I love this asset and its really easy to use. So that said I just wanted to ask a question: My current project also contains canvases in the scene (WorldSpace) to visualize some information with TextMeshPro and images(Sprites). This canvases are not part of the screenshot that is taken. How can I include them in the captured screenshot?
     
  22. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Thanks for purchasing Ultimate Screenshot Creator !

    I need more information to understand what you are trying to achieve.

    - Are the canvas visible on the scene when you capture, but not part of the screenshots ?
    - Are the canvas at an other location on the scene and you want to add them in the screenshot ?
    - What capture mode are you using ? If you use a camera to capture, does it also render the layer of the canvas ?
     
  23. ziemlich3D

    ziemlich3D

    Joined:
    Aug 21, 2017
    Posts:
    24
    Thanks for your quick answer! Yes, the canvas(worldspace-mode) are visible within the scene as the screenshot is captured, but are not shown on the screenshot. The mode I'm using is "CameraMode: GameView". The UI-canvas is not renderend into the screenshot, as "capture active UI canvas" is turned off. It's intended to not capture the UI of the app, but the world-space canvas in the scene.
     
  24. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Ok, if they do not appear it is because you selected do not render UI.
    You can add them in the screenshot by creating OVERLAYS for each world UI to be rendered.
     
  25. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Better alternative: enable render UI, and add a "HideOnCapture" component to all UI you want to mask. It may be simpler in your case.
     
  26. ziemlich3D

    ziemlich3D

    Joined:
    Aug 21, 2017
    Posts:
    24
    Thanks for this idea! I didn't know there is a way from excluding some canvas. It works like a charm :)
     
    WildMageGames likes this.
  27. Realgar

    Realgar

    Joined:
    Sep 30, 2012
    Posts:
    52
    Hi, I need to add a screenshot function with a button on my webGL app, and I see that your asset is compatible with WebGL... But how do you use screenshots over Internet ? User can download it via a JS Unity plugin ? Is it compatible with all navigators ? Could I imagine send the picture to a server ? Or send it by mail ? You can answer me by PM if you prefer, in french. My english is poor ;-) Thank's !
     
  28. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283

    Hello,

    When you take a screenshot on WebGL an image file is created and the browser act like if the user was downloading an image from the internet. Depending on the browser settings, it can for instance ask the user where to save the image and with what name, or download it automatically in a /Download folder.

    It should work on all OS and browsers, although it as been reported that on iOS 12.04 the image is saved as an "unknown" file, and I was not able to solve that issue yet.

    It is possible to send the picture to a server or by email, but this is not a feature from the asset. The asset creates a texture and then export to a file. If you want, you can just capture to a texture, and then code a script to send it to a server or by email using the UnityWebRequest or other class.
     
  29. Realgar

    Realgar

    Joined:
    Sep 30, 2012
    Posts:
    52
    Thank you very much for your fast response !!!
     
  30. latrodektus

    latrodektus

    Joined:
    Nov 1, 2016
    Posts:
    13
    Hi, I've just purchased the asset especially with iOS App Store screenshots in mind. I've found a small issue with the placement of objects on an Overlay Canvas across multiple resolutions.
    - Image 1 is an ipad resolution screenshot taken when game view was at iphone resolution
    20200525182437.png
    - Image 2 is an iphone resolution screenshot taken when game view was at ipad resolution
    20200525182218.png
    - Image 3 is an iphone resolution screenshot taken when game view was at iphone resolution
    20200525182437.png
    - image 4 is an ipad resolution screenshot taken when the game view was at ipad resolution
    20200525182218.png

    In image 3 and 4 all the objects are anchored in their correct locations (grey bar across the bottom, text and icons across the top)
    But as you can see in image 1 the objects are in their iphone locations even though its an ipad screenshot and in 2 the objects are in their ipad locations even though it's an iphone screenshot.

    Is there any way to get these game objects to anchor correctly regardless of what the game view resolution is?
     
  31. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Hey there, thinking of purchasing this since it says it supports print quality. Tried a lot of other solutions including bleeding edge ones but to no avail. I'm hoping to get a screenshot of ridiculously extreme high resolutions like 10k x 15k or somewhere around that to be able to create 100x80 or 80x60cm or anything like that big.

    Would I be able to get those with your asset or does it just use the classic old supersizing feature of unity? (ScreenCapture.CaptureScreen with scale paremeter?)
     
  32. Object-Null

    Object-Null

    Joined:
    Feb 13, 2014
    Posts:
    70
    Hello there,

    im using this screenshot assets fore some time now to create screenshots for the ios and app stores.
    But im doing images now for the store with a phone visible in the screen. in that case, i want to use safe areas for different phones. is that somehow possible?
    ( im also using the "UniversalDevicePreview" assets)

     
  33. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Hello,

    I am really sorry for the answer delay, I did not received a forum notification for your message, and I just found it by chance.

    The extra scaling captures at a very high resolution. The limitation will be your maximum graphics card render buffer resolution.
    - on "gameview resizing" mode, I was able to go up to 8192x4608. On this mode you can capture everything, including UI.
    - on "render to texture" mode, I was able to go up to 13440x7560. This mode is principally made to capture scenes, the UI capture is limited to screenspace camera canvas or worldspace canvas.


    Also, to go above those limitations, we could think of a custom script to capture several part of the screenshots changing the camera viewport, and recompose them.
     
    Last edited: Aug 7, 2020
  34. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Hello,

    I am really sorry for the answer delay, I did not received a forum notification for your message, and I just found it by chance.

    If you use the Universal Device Preview, you can capture your game on the phone you want, and use the export button to get the image directly embedded within your choice device.
    For the safe area, you have to check that it is located in a fully stretched ui panel, with snap left right top bottom, and place all your UI within that panel. It should be automatically adapted to the notches.

    How are you creating the image, are you using the screenshot composer ?
    Maybe you are looking for a way to combine automatically the device preview with the screenshot composition feature ?
     
    Last edited: Aug 7, 2020
  35. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Hello,

    I am really sorry for the answer delay, I did not received a forum notification for your message, and I just found it by chance.

    The UI should be adapted to the capture resolution, independently of the gameview resolution.
    This looks like a bug.

    What is the asset version ? There may be already an update solving that issue.

    What is your Unity version ?
    What is your OS ?
    How your you capture the screenshots, what component do you use ?
    What is the capture mode ?
    What UI system do you use, is this the standard Unity system of something else ?
    If you use the screenshot manager or the screenshot windows, in the bottom on the ScreenshotManager config, in the ScreenshotTaker component, what is the waiting mode, and how many frames ?

    Also, you can send me your example at support@wildmagegames.com so I can try to reproduce the issue.
     
  36. RSMAPPLI

    RSMAPPLI

    Joined:
    Jul 12, 2020
    Posts:
    6
    After taking a screenshot that is saved to the camera roll (android and iOS), How do I retrieve the full image path (including file name) to send to a native sharing plugin (NatShare) ??
     
  37. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Hello,

    The screenshot filename is stored in the ScreenshotResolution m_FileName member.

    If you take a screenshot with the ScreenshotManager, you can wait for the end of the capture process using the onResolutionExportSuccess delegate.

    Your script could look to something like that:

    Code (CSharp):
    1. class YourScript : MonoBehaviour
    2. void OnEnable() {
    3.     // Register to the event
    4.     ScreenshotManager.onResolutionExportSuccess += onExport;
    5. }
    6. void OnDisable() {
    7.     // unregister to the event
    8.     ScreenshotManager.onResolutionExportSuccess -= onExport;
    9. }
    10. void onExport(ScreenshotResolution res) {
    11.     // Get file path
    12.     string path = res.m_FileName;
    13.     // Your code here ...
    14. }
    15. }
     
  38. Sonicjoy

    Sonicjoy

    Joined:
    May 28, 2018
    Posts:
    8
    Hi, I'm using this asset in my adventure game for the user to take screenshots during gameplay, then refer back to them in the Gallery. They don't need to have access to these screenshots on their device's Photo Library. I've got the asset working fine on Mac but would like to set it up for an iOS build without saving the screenshots to the device Photo Library and still have access to the Gallery and Greybox viewers. I currently use 'FIXED_GAMEVIEW' with the destination set to 'DATA_PATH', pointing to 'Screenshots/' folder that's inside my Assets folder. Any suggestions on what path I should use?
     
  39. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Hello,
    There is currently no feature to do it, but you can do it with a simple edit of the code:
    in ScreenshotManager.cs, in ExportToFile method, line 132,
    replace
    Code (CSharp):
    1. if (addToGallery)
    by
    Code (CSharp):
    1. if (false)
    This is a temporary fix, I will add an option in the next update.
     
  40. Justin_Wingfall

    Justin_Wingfall

    Joined:
    May 15, 2014
    Posts:
    125
    transparent not working. I'm using hdrp. Don't see why this is a problem. I did everything right. I also turned off recompute alpha Using Unity 2019.4.11f1

    Culling layer is called BG, I tested on a chair.

    heres settings.
    sn1.jpg sn2.jpg

    please help

    When I render the whole background is black, and culling is fine, the chair is the only thing render, but no transparent background.
     
    Last edited: Oct 10, 2020
  41. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Hello,
    Sorry for this issue, and thanks for the details, I will investigate as soon as possible to solve it and keep you updated.
     
  42. SickChicken

    SickChicken

    Joined:
    Mar 1, 2018
    Posts:
    2
    Hey, thanks for the great asset.

    I'm currently using a prefab of the gallery (which is shown on keypress using another asset - Adventure Creator) to display screenshots taken whilst playing in-game. My goal is to have a photo mode where the player can take shots and view them in the gallery.

    I've found that newly taken screenshots do not show in the gallery until the game has been quit and re-run when I'm testing in editor. It's like the gallery does not update with new screenshots taken. I've tested the example scene and it seems to be working fine there.

    I was wondering if this is due to me using a prefab of the gallery, as opposed to having it an object that's in the scene hierarchy. Ideally I would like to avoid having to place the gallery object into the hierarchy of every scene.

    Any advice would be appreciated, all the best.
     
  43. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283

    Hello,

    Thanks for purchasing Ultimate Screenshot Creator.

    I think it may come from the way you are showing or hidding the gallery. For the gallery to be updated, you need to call the methods LoadImageFiles() and then UpdateGallery(). This is automatically done by calling the method Show(), so when you want to show the updated gallery, do not enable or disable the game object or canvas manually, you need to call Show().

    Do not hesitate to give me more details on how you are calling the gallery.
     
  44. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    This is how to get transparent background using HDRP
    (I got those results on 2020.1.0f4 and HDRP 8.2.0)

    - Set the screenshot manager as this: PNG, RGBA, recompute alpha to false.
    - Set the clear color of your camera to Color 255 255 255 0 (white transparent).
    - In your HDRP sky and fog profile, set fog to false. If the fog is enabled, its color overwrites the camera background color and this is not transparent anymore.
    - In your HDRenderPipelineAsset, set color buffer format to R16G16B16A16, to enable transparency.
     

    Attached Files:

    Justin_Wingfall likes this.
  45. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    sales.png

    The asset is on SALE at 50% OFF until December 4th. Do not miss it!
     
  46. BasicallyGames

    BasicallyGames

    Joined:
    Aug 31, 2018
    Posts:
    91
    I just bought this, but I'm having trouble including UI in my screenshots. My game has multiple cameras and is using the Universal Render Pipeline. Screenshots can be taken from the main camera with no issues, but screenshots from the UI camera just turn out the same as with the main camera, even though the UI camera's culling settings only allow it to see UI elements. The UI camera is stacked on top of the main camera according to Unity's instructions on how to stack cameras in the URP (Not as a child . The render mode of the UI canvas is "Screen Space - Camera".

    Edit: Alright, I figured out a workaround. If I turn the UI camera into a base camera instead of an overlay camera, I can get it to capture the UI. Would be nice if this worked regardless of the camera mode though, or if overlay cameras could be included in base camera captures.
     
    Last edited: Dec 2, 2020
    WildMageGames likes this.
  47. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    Hello,

    What capture mode are you using ?
    If you use "FIXED_GAMEVIEW" you should be able to capture exactly what you see on the screen, including UI, independently of the camera settings. Is it the case ?
     
  48. BasicallyGames

    BasicallyGames

    Joined:
    Aug 31, 2018
    Posts:
    91
    That works, thank you! I'd still like an easier way to split the UI and game into separate images, but this will work fine for now.
     
  49. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    I checked the export of camera to separated images, and indeed it seams that the feature does not work anymore with the UDP. I will check if this is something I can change.
     
  50. WildMageGames

    WildMageGames

    Joined:
    Mar 24, 2014
    Posts:
    283
    sales 1.png

    The asset is on SALE at 50% OFF until January 7th. Do not miss it!