Skip to content

Teaching — UI

This folder contains the shared IMGUI infrastructure used by RevFramework teachable panels.

It provides common support for:

  • panel layout and chrome
  • scaling and anchoring
  • draggable/resizable panel behaviour
  • feedback and result banners
  • dependency/wiring guard messages
  • shared section and help rendering

These scripts exist to keep teachable panels consistent, readable, and easy to extend.


What Lives Here

Typical contents include shared teachable-panel infrastructure such as:

  • TeachablePanelBase — standard lifecycle and panel rendering entry point
  • PanelBase — shared IMGUI layout, scaling, dragging, anchoring, resizing, and sizing helpers
  • PanelDependencyGuard — standardised dependency/wiring callouts and hard-stop checks
  • PanelFeedbackUtility — feedback box rendering for info/warning/error/success states
  • PanelResultUI — standard rendering for operation results
  • PanelSections — shared section/header/help/button helpers
  • OpResult — lightweight result model with UI-neutral severity
  • StyleSizer — internal helper that scales the shared GUIStyle font sizes
  • TeachablePanelTheme — the shared colour and spacing constants every panel draws with

That is the whole folder. There is no PanelLayout type — this list named one for a long time, and layout lives in PanelBase itself (Row, RowAuto, Cols, and the reference-unit scaling around them).


Purpose

These utilities exist to support the teaching layer of RevFramework.

They are designed to make teachable panels:

  • self-explanatory
  • visually consistent
  • easier to debug
  • easier to maintain across systems

This helps the framework teach itself directly inside Unity, instead of forcing users to rely only on external documentation.


Not Gameplay UI

This folder is not a gameplay UI framework.

It is not intended for:

  • in-game HUDs
  • player-facing menus
  • production UI architecture
  • runtime feature UI systems

These scripts are built around IMGUI and are meant for teachable/debug tooling, not shipped player UX.


Intended Usage

Use this folder when you want to:

  • understand how teachable panels are structured
  • inspect the shared UI layer behind RevFramework teaching tools
  • extend or maintain existing teachable panels in a consistent way

Design Notes

This UI layer intentionally:

  • avoids direct dependencies on gameplay UI frameworks
  • keeps feedback rendering standard across systems
  • uses a shared panel lifecycle to reduce duplication
  • separates result/status models from visual rendering
  • supports lightweight dependency validation and guided callouts

This is part of the teaching ecosystem, not the public gameplay API surface.


Not a Public Runtime Surface

Although these utilities are shared across teachable panels, they should not be treated as a general-purpose extension framework for game UI.

If you are building a real game UI, use your own preferred approach:

  • uGUI
  • UI Toolkit
  • a custom runtime UI layer
  • another framework entirely

Safe to Remove

If you are not using RevFramework teachable panels, this folder can be removed safely.

Removing it does not affect:

  • runtime systems
  • supported gameplay APIs
  • production integrations