# Web View Selector UGUI

## 🎯 WebViewSelectorUGUI Class

Handles node focusing and input raycasting within the WebView UI using Unity UI (uGUI).

> Namespace: `Esper.SkillWeb.UI.UGUI`\
> Inherits from: `MonoBehaviour`

***

### 📦 Fields

| Access      | Field               | Type               | Description                                                  |
| ----------- | ------------------- | ------------------ | ------------------------------------------------------------ |
| `protected` | `animator`          | `Animator`         | Reference to the animator component.                         |
| `protected` | `rectTransform`     | `RectTransform`    | Reference to the selector's rect transform.                  |
| `protected` | `raycaster`         | `GraphicRaycaster` | Raycaster from the target canvas.                            |
| `protected` | `eventSystem`       | `EventSystem`      | Reference to the event system in the scene.                  |
| `public`    | `canvas`            | `Canvas`           | Canvas this selector is attached to. *(Hidden in inspector)* |
| `public`    | `focusedNode`       | `SkillNodeUGUI`    | The currently focused skill node. *(Non-serialized)*         |
| `protected` | `normalSize`        | `Vector2`          | Default size for the selector when not focused.              |
| `protected` | `unfocusedAnimName` | `string`           | Animation name to play when unfocused.                       |
| `protected` | `focusedAnimName`   | `string`           | Animation name to play when focused.                         |

***

### 🧾 Properties

| Access          | Property    | Type                  | Description                                                         |
| --------------- | ----------- | --------------------- | ------------------------------------------------------------------- |
| `public`        | `IsVisible` | `bool`                | Whether the selector is currently active in the hierarchy.          |
| `public static` | `Instance`  | `WebViewSelectorUGUI` | Singleton instance of the selector. *(Read-only, protected setter)* |

***

### 🧰 Methods

| Access           | Method                     | Returns | Description                                                               |
| ---------------- | -------------------------- | ------- | ------------------------------------------------------------------------- |
| `public virtual` | `UpdateSize()`             | `void`  | Updates the selector’s size to match the focused node.                    |
| `public`         | `TargetActive()`           | `void`  | Assigns the current active web view’s raycaster as the selector's target. |
| `public`         | `SetVisible(bool visible)` | `void`  | Sets whether the selector is visible.                                     |
| `public`         | `SetFocused(bool focused)` | `void`  | Sets the focused animation and updates hovercard.                         |
