View on Asset Store (opens in new tab)
Package details
- Latest version
- 1.0
- Last updated
- First released
- Unity version
- 6000.2.1 or later
- Package size
- 959 KB
- Files
- 13
- Favorites
- 5
- Views in the past week
- 22
Price tracking
- Last checked
- Tracked since
- Lowest recorded
- $4.99 on
Keywords
Game Navigation Bar – Bottom Tabs for UGUI
Animated bottom navigation panel for UGUI. Dead-simple setup: define tabs and target canvases in the Inspector - done. Use your own icons and text prefab. Mobile-ready.
Affiliate link · Purchases support this site
Price history
Last 6 months
USDAsset preview
1 / 4
Game Navigation Bar – Bottom Tabs for UGUI screenshot 1
About this asset
What it is
Hungrycraft Game Navigation Bar (UGUI) is an animated bottom tab bar for Unity UI. It instantiates buttons from a list, evenly distributes width, animates selection (width/height, icon scale/offset, text reveal), and activates the target Canvas per tab. Locked tabs (no Canvas) are non-interactable.
Why it’s useful
Drop-in mobile navigation for menus/hubs. Clean API, inspector-driven. Works with your own Text or TMP text prefab—no forced styling.
What’s included
- Prefabs: Assets/GameNavigationBar/Prefabs/NavigationPanel.prefab (base), Assets/GameNavigationBar/Example/Prefabs/MainMenu.prefab (ready setup)
- Example scene (portrait 1080×2340)
- Scripts: NavigationPanel.cs (component), AudioManager.cs (example click sound)
- PDF guide: Assets/GameNavigationBar/Documentation/HungryUI_NavigationPanel_Guide.pdf
Key features
- Runtime item list (name, icon, canvas, per-item active background, icon size/offset, text offset)
- Even width distribution with animated “active weight” vs “inactive weight”
- Height animation (or full-height stretch)
- Icon upscale + vertical offset on select
- Global inactive background + optional separators (fixed width, non-animated)
- Text via your prefab (UGUI Text or TMP_Text). We only set the string; you keep fonts/colors/sizes
- Event: OnButtonPressed(int index) (unlocked tabs only)
- Works without any TMP dependency
Quick setup
- Ensure the scene has Canvas + EventSystem.
- Drop NavigationPanel.prefab into the Canvas (or start from MainMenu.prefab).
- Add Items in the Inspector (name, icon, optional Canvas/background).
- Assign a Text Prefab if you want custom label styling.
- Tune Animation + Icon Animation, pick DefaultActiveIndex, done.
Targets & compatibility
- Unity: tested on LTS 2021.3+ and 2022.3+ (UGUI)
- Platforms: mobile/desktop; example authored for 1080×2340 portrait
- No extra packages required (TMP optional)
License
© 2025 Hungrycraft — Licensed for use within your projects. Redistribution/repackaging/resale as a competing asset is not permitted. Compiled builds may include this asset.
From the publisher's Asset Store listing.
Technical details
Requirements
- Built-in UGUI. Place the prefab under a Canvas as usual.
- Only scene requirement: an EventSystem (Create → UI → Event System).
- No extra packages (TMP optional if you use a TMP text prefab).
Inspector parameters
- Items (Tabs) — list of NavigationItem:
ButtonName — label text shown when the tab is active (string).
Icon — tab icon (Sprite).
TargetCanvas — Canvas activated on select; null = locked (non-interactable, event not fired).
ActiveBackground — per-item background when active (Sprite, optional).
IconSize — icon size (Vector2, px). If ≤0 in any axis → defaults to 100×100.
IconOffset — local (x,y) offset of the icon inside the button (Vector2).
TextOffset — vertical distance below the icon bottom (float; can be negative to overlap). - Layout & Stretch:
StretchBackgroundToWidth — use sliced/simple fill to cover the button rect; width is always weight-based.
StretchBackgroundToHeight — fill panel height (disables height animation). Off → height animates. - Common Visuals:
GlobalInactiveBackground — default background for inactive tabs (Sprite, optional).
GlobalSeparatorSprite — optional separator between buttons (fixed width; non-animated).
SeparatorWidth — separator width in px (float). - Text Prefab:Prefab with Text or TMP_Text. The component sets only the string; styling (font/size/color/auto-size) is your prefab.
- Animation (width/height):
activeWidth / inactiveWidth — width weights (drive LayoutElement.flexibleWidth).
activeHeight / inactiveHeight — heights when height is not stretched.
animationTime — tween duration for width/height/icon/text. - Icon Animation:
iconScaleMultiplier — icon upscale on select (e.g., 1.2).
iconOffsetY — extra vertical offset on select (can slide above panel edge a bit). - Selection & Events:
DefaultActiveIndex — initial tab; out-of-range → logs and falls back to 0.
OnButtonPressed(int index) — fired on click for unlocked tabs only.
Behavior / Implementation notes
- Width is distributed by weights across buttons; separators are layout siblings with fixed width and never tween.
- If a button has no background sprite, its root Image remains enabled with alpha=0 so the whole button stays clickable.
- Button transition = None — visuals are handled by the component (no tinting).
- Text is top-center anchored and positioned under the icon (uses TextOffset).
Used source file(s) sizes
- Sample sprites: PNG, typically 256–1024 px; separators are thin PNGs. All visuals are optional.
File count (approx.)
- ~2 scripts, 2 prefabs, 1 example scene, 1 PDF guide (+ sprites if included).
Animated
- Yes — width weight tween, height tween (if not stretched), icon scale + Y offset, delayed text reveal.
Animation type list
- LayoutElement.flexibleWidth tween (active vs inactive weights)
- LayoutElement.preferredHeight tween (if height animation enabled)
- Icon scale/position tween
- Text show with position update under icon
Additional: Vector or pixel based?
- Pixel-based by default; works fine with vector/TMP content if you supply it via your prefab.
Compatibility
| Unity version | Built-in | URP | HDRP |
|---|---|---|---|
| 6000.2.1f1 | Compatible | Not listed | Not listed |
As listed on the Asset Store.