[Released] Ultimate Icon - Editor and realtime icon generation

Ultimate Icon version 1.2 has been released to the asset store.

This is a tool designed for icon creation for projects using in game assets, useful for projects large and small.

Current Features:

  • Realtime and Editor - Choose if you want to pre-render you images or generate images during runtime with our easy to use functions
  • Multiple file types - can export to .png, .jpg, .exr, .tga (can have multiple in one export queue)
  • Preset and custom resolutions - use the pre-configured resolutions or add your own as needed
  • Export queue - render all your images in one go or export as needed, your choice
  • Reference grid - An overlay reference grid so you can line up your models in exactly the right position for capture
  • Default transform - Provide default position, scale, rotation so you dont have to edit each prefab’s position individually
  • Export destination - Choose any folder to output your files, inside or outside of the project
  • Precise translation - move, scale and rotate your prefabs non destructively with precision using the interface, or type in your own values as needed
  • Rename your files - for each file you can rename them or choose a custom folder for each file individually
  • High performance - built with speed in mind, no need to close your screen or wait for long processing times before you can use the tool
  • Mouse Positioning - Easier object positioning with mouse on preview canvas (position, rotation, scale)
  • Auto Center - Auto positioning of items in frame

Planned Features:

  • Changing background color/images
  • Adding borders and overlays

Asset Store Link:

[New Update] Version 1.1

New release available now on the asset store.
This update allows the preview object’s transform values to be manipulated via mouse over the preview image.

Release Notes:
Version 1.1

Adding mouse control to preview window

Left mouse - position

Right mouse - rotation

Middle mouse - scale

Control, shift & alt = individual axis control

[New Update] Version 1.2

New release available now on the asset store.
This update adds a center object button and utility function to easily center a gameobject into view without any additional input.

Release Notes:
Version 1.2

Adding “Fit To View” button

Places the previewed item to the center of the icon camera view

Adding CenterObject utility function

Hi there! First of all, thank you for this asset-- it seems really cool, and for the game I am making, it should be incredibly useful. That said, I’m running into a bit of an issue-- Since I am using the new InputSystem for my project, the mouse doesn’t control the preview properly and errors the preview script, as it is trying to use the InputManager to read my mouse movement. I attached a sample error below.

I wouldn’t mind using the controls in the UI to drive it instead, but the preview doesn’t seem to respond to them? I can change Default Position, Rotation, and Scale, and nothing happens. Moving the Camera settings does work though.

Thank you again for this asset, and let me know if you have any suggestions for fixes.

InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.
UltimateIcon.Editor.PreviewInteractor.MouseMoveEvent (UnityEngine.UIElements.MouseMoveEvent evt) (at Assets/UltimateIcon/Editor/Components/PreviewInteractor.cs:385)
UnityEngine.UIElements.EventCallbackFunctor`1[TEventType].Invoke (UnityEngine.UIElements.EventBase evt) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.EventCallbackRegistry+DynamicCallbackList.Invoke (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.BaseVisualElementPanel panel, UnityEngine.UIElements.VisualElement target) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.EventDispatchUtilities.HandleEventAcrossPropagationPathWithCompatibilityEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.EventBase compatibilityEvt, UnityEngine.UIElements.BaseVisualElementPanel panel, UnityEngine.UIElements.VisualElement target, System.Boolean isCapturingTarget) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.EventDispatchUtilities.DispatchToCapturingElementOrElementUnderPointer (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.BaseVisualElementPanel panel, System.Int32 pointerId, UnityEngine.Vector2 position) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.PointerMoveEvent.Dispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.BaseVisualElementPanel panel) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.BaseVisualElementPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <22d067182d5247a19e6e6491b2e6062f>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <267aef74484940a1ba094115bc753d9d>:0)

Image of what I see (Moving the sliders does not move the object):

Hi,

Thanks so much for purchasing, apologies for the issues you’re having.

It seems like it’s to do with the input handler being the new version, for now you can change input handling to both as shown below. I feel this should fix the slider issue too but if it doesn’t please follow up with me and I will investigate further.

I will look at pushing a hotfix for this to see if I can check which system is being used.

Hello sir,
Thank you so much! I’ll give that a shot tonight when I am home. I really appreciate your quick reply and the inclusion of a screenshot.