added code from unity
This commit is contained in:
58
Samples~/README.md
Normal file
58
Samples~/README.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# Popup System Samples
|
||||
|
||||
## Contents
|
||||
|
||||
### Prefabs
|
||||
|
||||
Reference prefabs for the popup system. Copy these into your project as a starting point. After copying, add entries to your `PopupSettings` asset's Element Prefabs list mapping `PopupElementType` values to these prefabs.
|
||||
|
||||
| Prefab | PopupElementType | Description |
|
||||
|---|---|---|
|
||||
| `PopupReferencePrefab` | N/A | Main popup container with Canvas, CanvasGroup, Background, and Content |
|
||||
| `PopupHeader` | `Header` ("header") | Header text element (TMP_Text, bold, larger font) |
|
||||
| `PopupText` | `Text` ("text") | Body text element (TMP_Text, regular) |
|
||||
| `PopupStat` | `LabelValueText` ("label_value_text") | Label + value row (HorizontalLayoutGroup with two TMP_Text children) |
|
||||
| `PopupIcon` | `Image` ("image") | Image element for icons or artwork |
|
||||
| `PopupSeparator` | `Separator` ("separator") | Horizontal divider line (Image, thin) |
|
||||
|
||||
To add variants, duplicate a prefab, style it differently, and register it with a variant type. Use `PopupElementType.Header.Variant("gold")` in code, and set the type to "header_gold" in the PopupSettings Inspector.
|
||||
|
||||
### Settings
|
||||
|
||||
| Asset | Description |
|
||||
|---|---|
|
||||
| `PopupSettings` | Pre-configured PopupSettings ScriptableObject with sensible defaults |
|
||||
|
||||
### Scripts
|
||||
|
||||
| Script | Description |
|
||||
|---|---|
|
||||
| `PopupSystemExample` | Basic setup with auto-scanned triggers, `GetTriggerHandler` by name, and `GetTriggerHandlers` by category |
|
||||
| `DynamicTriggersExample` | Setting up triggers on dynamically instantiated UI using `InitializeTriggersInChildren` with (trigger, view) callback |
|
||||
| `CodeOnlyPopupExample` | Showing popups from code (anchored, fixed position, follow mouse), `PopupElementType` variants, and generic `Add()` for custom types |
|
||||
|
||||
### Architecture Overview
|
||||
|
||||
```
|
||||
PopupTrigger (MonoBehaviour) -- reference holder, forwards pointer events
|
||||
|
|
||||
PopupTriggerView (C# class) -- behavior: calls IPopupSystem.Show/Hide
|
||||
|
|
||||
IPopupSystem / PopupSystem -- manages categories, delays, priority, triggers
|
||||
|
|
||||
PopupView (C# class) -- behavior: generic element cache, positioning
|
||||
|
|
||||
PopupReference (MonoBehaviour) -- reference holder: content, canvasGroup, background
|
||||
|
|
||||
PopupSettings (ScriptableObject) -- configuration + element prefab registry (PopupElementType -> prefab)
|
||||
|
|
||||
PopupElementType (struct) -- type-safe element identifier (Header, Text, LabelValueText, Image, Separator + custom)
|
||||
```
|
||||
|
||||
## How to use
|
||||
|
||||
1. Import the samples via the Unity Package Manager (select the package, expand Samples, click Import)
|
||||
2. Copy the prefabs into your project's Prefabs folder
|
||||
3. Create a PopupSettings asset or use the provided one
|
||||
4. Add Element Prefab entries to PopupSettings using the dropdown (Header, Text, LabelValueText, Image, Separator) mapped to the copied prefabs
|
||||
5. Reference the example scripts for integration patterns
|
||||
Reference in New Issue
Block a user