Skip to content

Conversation

@EternalDawn1
Copy link

@EternalDawn1 EternalDawn1 commented Nov 27, 2025

Icon editor for both Hierachy & Inspector Widget
Customizable Icon Colors via Color Picker
Persistent
Material Icons + Emoji Icons
Recent Emojis tab

  • favorite tab , reset icon
vid.mp4

@garrynewman
Copy link
Member

I have a bit of a hot take on this. The icons should be emoji - not material icons.

@DrakeFruit
Copy link
Contributor

remember how I bullied you for the windows 11 emojis before and everyone hated it? please no

@EternalDawn1
Copy link
Author

EternalDawn1 commented Nov 27, 2025

_I used material icons for Color changing ability , I could also add emoji icons . To fulfill both sides . Or just emoji .

Or that devs could use their own icons_

correction: i will add only emojis since the material icons are not needed . i have to fix some issues with it

@DrakeFruit
Copy link
Contributor

an option for emojis sounds perfectly fine

@MenschlichTv
Copy link

MenschlichTv commented Nov 27, 2025

I dont like the fact that its using emojis by default... I dont want to have 100 emojis in my hierarchy by default when creating new objects, prefabs etc...

@EternalDawn1
Copy link
Author

EternalDawn1 commented Nov 27, 2025

I dont like the fact that its using emojis by default... I dont want to have 100 emojis in my hierarchy by default when creating new objects, prefabs etc...

its just something i did to demonstrate , how the emoji's would look like . I think its only purpose would be for newcomers to have some kind of recognition since all components icon look the same ... and some QOL features

also : the only thing that has an icon is the empty gameobject when making one .

Removed emoji category tabs and consolidated all emojis into a single 'All Icons' category. This simplifies the UI and internal logic by eliminating category selection and related code.

Remove icon search filter from IconPickerWidget since its unuseable

Eliminated the filter functionality and related UI elements from IconPickerWidget, simplifying pagination and icon retrieval logic. The widget now displays icons by category without search or filter support.

Update IconPickerWidget.cs

Expand emoji lists in IconPickerWidget

Added more symbols and flag emojis to the SymbolsEmojis and FlagsEmojis arrays in IconPickerWidget.cs to provide a broader selection for users.

Improve page handling in IconPickerWidget

Resets page index when switching categories based on filter state and adds robust bounds checking for page numbers in Rebuild(). Also removes unused emoji generation code for clarity.

Handle icon color tags with variable hex length

Added support for both AARRGGBB and RRGGBB formats in icon color tags. Now, color changes properly invalidate the node and fallback to full alpha if only RRGGBB is provided.

Add emoji icon support and session icon storage

Introduces session-only custom icon storage for GameObjects and adds emoji icon support to the icon picker. GameObject icons now prefer persisted tags (with encoding/decoding) and fall back to session storage. The icon picker UI is updated to allow category selection and display emoji icons. Scene tree and inspector logic updated to handle new icon sources and ensure UI updates on icon changes.

Update default icon logic for GameObjects

Default icon selection now considers visible children in addition to components. If a GameObject has children that should show in the hierarchy, 'folder_open' is used; otherwise, 'layers' is used for objects with components, and 'folder' for empty objects.

Update default GameObject icon logic

Changed default icon from 'layers' to 'folder' for GameObjects without components in both inspector and scene tree. The icon now reflects whether a GameObject has components, improving visual clarity.

Add custom icon and color support for GameObjects

Introduces the ability to set both custom icons and colors for GameObjects via tags. Updates the inspector and scene tree to reflect these customizations, and adds a new IconColorPicker popup for selecting icon and color.

Add support for custom GameObject icons via tags

Introduced the ability to set custom icons for GameObjects using tags prefixed with 'icon_'. The GameObject inspector header now allows users to pick an icon, which updates the tag and refreshes the scene tree. The scene tree node rendering logic was updated to display the custom icon if present.
@DrakeFruit
Copy link
Contributor

material icons were nice :/

@MonkeyShark
Copy link

I preferred material icons as well. Don't know why Garry thinks emojis would be better, they're uncolorable.

@EternalDawn1
Copy link
Author

I preferred material icons as well. Don't know why Garry thinks emojis would be better, they're uncolorable.

some of the emojis are colorable ... , having both is great ( material & emojis' )

@joshuascript
Copy link

joshuascript commented Dec 4, 2025

I actually like this feature. To each their own -- what if it had? (...)

  1. A shortlist of main icons and recently selected ones?
  2. Material icon preservation if a Windows 11 icon is not selected

Everyone is appeased this way.

Corrected the parent selection logic for object creation in GameObjectNode to use 'new GameObject[] { null }' for root-level creation. Also fixed formatting in IconPickerWidget by removing unnecessary blank lines between emoji category arrays and placing SymbolsEmojis in the correct order.
Consistently applied tab-based indentation across GameObjectHeader, IconTagEncoding, GameObjectNode, and IconPickerWidget classes. This improves code readability and maintains a uniform style in editor tools related to custom icons and tags.
Refactored IconPickerWidget to support Material Icon categories, a sidebar for category selection, and tracking of recently used icons via cookies. Improved UI layout, navigation, and icon selection logic for better usability and extensibility.
Corrected inconsistent indentation in the IconCategories dictionary definition within IconPickerWidget.cs for improved code readability and consistency.
Reformatted the IconPickerWidget.cs file to use tabs for indentation instead of spaces. No functional changes were made; this is a code style update for consistency.
IconPickerWidget now supports both Material Icons and Emojis, with mode toggling, category browsing, and recently used/favorites tracking for each mode. Right-click context menu allows adding/removing icons or emojis to favorites. Emoji categories and lists have been added, and the UI has been updated to accommodate these features.
Refactored IconPickerWidget to load emoji categories from Data/emojis/emojis.json at runtime, falling back to defaults if the file is missing or invalid. This change removes large embedded emoji arrays from the source code, improving maintainability and avoiding encoding issues.
IconPickerWidget now loads emoji categories from a JSON file in the Data/emojis directory, removing hardcoded defaults and the GetOrDefault helper. Added emoji-sequences.txt to the Data/emojis directory for reference.
@EternalDawn1
Copy link
Author

EternalDawn1 commented Dec 4, 2025

new.mp4

I made some changes: I re-added Material Icons and emojis via JSON, and I also added a “recently used / favorites” feature so you can add or remove icons (via right-click) from your Favorites tab.

also removed the folder basic icon when making a new component

I’m now considering redesigning the header so the icons and emojis appear on the left side of the panel as small counterpart icons to what’s shown on the right side.

@CarsonKompon
Copy link
Contributor

That popup is crazy huge...

Feels like its far too much now (especially with the colour picker always being there)

@trende2001
Copy link
Contributor

@EternalDawn1 maybe without the color picker? i like it

@boxrocket6803
Copy link

at risk of adding yet more stuff to the popup a search bar would be pretty slick, especially for the material icons

@DrakeFruit
Copy link
Contributor

color picker side by side with the icon picker

Corrected indentation for the MouseRightClick event handler in IconPickerWidget.cs to improve code readability and maintain consistency.

GameObject icon handling to use tags only , hidden tags

Removed session-only custom icon storage and now rely solely on tags for persisting GameObject icons. Simplified icon retrieval and assignment logic to improve consistency and persistence across sessions.

Remove CustomIconStorage class

Deleted the CustomIconStorage static class, which provided session-only storage for custom icons keyed by GameObject reference. This may be part of a refactor or cleanup of unused code.

Improve emoji search in IconPickerWidget

Enhanced the emoji search functionality to allow searching by emoji names, not just the emoji character. This is achieved by building a reverse mapping from emoji characters to their searchable names using reflection, improving usability when searching for emojis by descriptive terms.

Add Favorites category to IconPickerWidget

Introduces a 'Favorites' category for both Material Icons and Emojis, updates category sidebar and icon mapping, and improves UI with a background for the content area. Also refines the Main icons list and adjusts search box placeholder text based on mode.

Add reset icon functionality to GameObject header

Implemented right-click context menu on the GameObject icon button with options to change the icon or reset it to default. Added logic to remove custom icons and related tags, update the UI, and provide a reset button in the icon color picker popup.

Revamp icon picker UI and add color selection

Refactored IconPickerWidget to improve layout, add a search box, and move mode buttons to a right sidebar. Introduced a color picker button for material icons, allowing users to select icon colors. Updated GameObjectHeader to handle live color updates from the icon picker and streamlined event handling for icon and color changes.

back to normal icon when creating gameobject

Replaced dynamic icon selection with static icons for game objects in both GameObjectHeader and GameObjectNode. This simplifies the UI by using a consistent icon representation regardless of children or components.

Replace emoji-sequences.txt with emojis.json

Removed the emoji-sequences.txt file and added emojis.json to update the emoji data source. This change likely transitions from a text-based Unicode emoji sequence format to a JSON format for improved parsing and integration.
@EternalDawn1
Copy link
Author

vid.mp4

i made some changes

  1. resize the panel
  2. removed the always on color picker
  3. added favorite tab
  4. added some contrast to the background
  5. persistent icons for both scene tree view & inspector
  6. added a working search bar for both material icon & emoji's

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants