CultLib/src/GameCult.Unity
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 9847a96070 Track the new CHANGELOG.md.meta files (force-added like other tracked .meta)
*.meta is gitignored repo-wide; every tracked Unity .meta file, these two
included, is force-added on purpose.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 20:11:48 +02:00
..
Assets Track the new CHANGELOG.md.meta files (force-added like other tracked .meta) 2026-09-17 20:11:48 +02:00
ProjectSettings Initial commit 2026-04-18 06:04:39 +01:00
.gitignore Initial commit 2026-04-18 06:04:39 +01:00
GameCult.Unity.sln.DotSettings Initial commit 2026-04-18 06:04:39 +01:00
README.md Add Unity CultCache Studio 2026-05-24 19:56:50 +01:00

CultUI

CultUI is a Unity runtime UI composition and inspector framework, packaged for UPM and developed alongside a demo project that showcases its components, layout system, and reflective inspector workflow.

This repository serves two purposes:

  • the source of the org.gamecult.ui package
  • the source of the org.gamecult.caching.unity CultCache editor package
  • a Unity project for developing and demonstrating the package in a real scene

Scope

CultUI is aimed at runtime, data-driven interface generation rather than hand-authoring every screen from scratch.

It is built for cases like:

  • in-game settings menus
  • debug and developer panels
  • runtime inspectors for game objects and data models
  • tools for exposing configurable values with minimal UI boilerplate
  • reusable menu flows composed from prefabs and field handlers

Features

  • reflective runtime inspector generation for fields and properties
  • prefab-driven resolver system for mapping value types to UI controls
  • built-in field components for common input and display patterns
  • foldouts and nested inspectors for structured data
  • modal and color-picker style components
  • reusable layout components for composing inspector rows and panels
  • runtime menu composition for demos and application flows
  • UPM-style package metadata and assembly definition for integration into Unity projects

Package Layout

The package source lives under Assets/UI.

Key parts of the package include:

  • package.json: package metadata for org.gamecult.ui
  • GameCult.Unity.UI.asmdef: assembly definition for the runtime package
  • Generator.cs: reflective inspector generation entry point
  • ReflectiveResolver.cs: runtime resolver for prefab-backed field handlers and components
  • Components/: built-in controls such as toggles, sliders, enum selectors, text input, buttons, labels, foldouts, and modal UI
  • Prefabs/, Resources/, Shaders/: packaged assets used by the framework

Demo Project

This repository also contains a Unity project used to develop and preview the package.

The demo project provides:

  • a sample scene under Assets/Scenes
  • package assets wired into a working Unity editor project
  • demo menu flow showing how CultUI panels can be assembled at runtime
  • CultCache Studio, a Unity editor window for opening and editing .cc files
  • a place to iterate on prefabs, resources, and inspector behavior without needing a separate host project

Installation

Local Package Development

If you are working in this repository directly:

  1. Open the project in Unity 6000.4.2f1.
  2. Let Unity import packages and regenerate project files.
  3. Open the demo scene in Assets/Scenes.

Installing As A UPM Package

To consume CultUI from another Unity project, reference the package by local path or Git URL in your project's manifest.json.

Example local reference:

{
  "dependencies": {
    "org.gamecult.ui": "file:../path-to-CultUI/Assets/UI"
  }
}

Usage

At a high level, CultUI works by combining:

  • a ReflectiveResolver asset that knows which prefabs handle which value types
  • reusable UI component prefabs
  • a Generator or GeneratorPanel that inspects an object and emits UI rows at runtime

Typical flow:

  1. Create or configure a ReflectiveResolver.
  2. Assign field and component prefabs to the resolver.
  3. Place a Generator or GeneratorPanel in your canvas hierarchy.
  4. Call Inspect(...) on a target object or use the helper methods for explicit UI composition.
  5. Refresh displayed values as your runtime state changes.

CultUI can be used both reflectively and imperatively:

  • reflective mode generates inspector UI from object members
  • imperative mode builds menus and panels directly through helper methods and component composition

Included Controls

The package currently includes components for patterns such as:

  • labels
  • text buttons
  • boolean toggles
  • text input
  • numeric sliders
  • increment/decrement fields
  • enum selection
  • foldouts
  • modal overlays
  • color selection workflows

Requirements

  • Unity 6000.4.2f1 for this repository's demo project
  • uGUI
  • TextMeshPro

The development project also includes additional Unity packages and NuGet-managed dependencies used by the demo environment.

Repository Structure

  • Assets/UI: package source
  • Assets/Caching: CultCache Unity editor package source
  • Assets/Scenes: demo scene content
  • Assets/Prefabs, Assets/Resources, Assets/Scripts: demo-project support assets and scripts
  • Packages, ProjectSettings: Unity project configuration for package development and demonstration

Development Notes

  • the Unity project is the development host for the package
  • generated .csproj and solution files are editor artifacts
  • package-facing code should remain centered in Assets/UI
  • demo-only code should stay separate from reusable package code