Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Plugin Setup and First Paths

This page is the shortest task-oriented path after Quick Start.

Use it when you want one page that answers two questions:

  • which plugins do I really get by default?
  • what should I open or run first for the task I care about?

Current Branch Note

The examples catalog lists only source files that are present in this branch. The standalone Android-style package under android/android_phone_app is the best full-screen demo.

Facade Setup

If you add UnivisUiPlugin, you already get:

  • UnivisUiStylePlugin
  • UnivisEnginePlugin
  • UnivisInteractionPlugin
  • UnivisWidgetPlugin

This is the recommended path for most applications.

Widget Runtime Coverage

UnivisUiPlugin includes UnivisWidgetPlugin, and that default widget surface now includes:

  • UnivisTextFieldPlugin for UTextField behavior and events
  • UnivisBadgePlugin for dynamic UBadge / UTag updates

If you compose plugins manually around UnivisWidgetPlugin, you do not need extra widget runtime plugins anymore:

use bevy::prelude::*;
use univis_ui_engine::UnivisEnginePlugin;
use univis_ui_interaction::interaction::UnivisInteractionPlugin;
use univis_ui_style::style::UnivisUiStylePlugin;
use univis_ui_widgets::widget::UnivisWidgetPlugin;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins(UnivisUiStylePlugin)
        .add_plugins(UnivisEnginePlugin)
        .add_plugins(UnivisInteractionPlugin)
        .add_plugins(UnivisWidgetPlugin)
        .run();
}

Use the dedicated widget plugins directly only when you intentionally want a narrower widget surface than UnivisWidgetPlugin.

Camera Setup

  • interaction and panel resizing resolve the camera from each URootUi
  • a simple Camera2d is enough for the smallest screen-space scenes
  • in multi-camera scenes, prefer UiCameraRef::Entity(camera_entity)

Best-First Paths

Basic Screen HUD

Start with:

Focus on:

  • the smallest facade-level boot path
  • viewport-fixed HUD and screen-root behavior

Android App Screen

Run this:

cargo run --manifest-path android/android_phone_app/Cargo.toml

Focus on:

  • composing a clean Android-style application surface inside URootUi::screen()
  • combining UTextField, UToggle, USeekBar, and UButton in one narrow screen
  • checking whether your mobile-like spacing still reads well without drawing device hardware

World-Space Panel

Start with:

Focus on:

  • logical canvas size versus physical world size
  • content-sized world panels and inspector-like roots

Text Input

Start with:

Focus on:

  • editable input
  • change and submit behavior
  • default text-field runtime coverage through UnivisWidgetPlugin

Selection Controls

Start with:

Focus on:

  • how selection-oriented controls fit into the broader built-in widget surface
  • how the current widget examples map to the built-in widget APIs