Table of Contents

Class DrawCanvasUI

Main drawing canvas UI component. Manages the layer container and provides zoom/pan functionality. Each layer is now a separate RawImage GameObject for mobile performance.

public class DrawCanvasUI : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
Inheritance
DrawCanvasUI
Implements
IPointerEnterHandler
IPointerExitHandler

Fields

OnCanvasCleared

public UnityEvent OnCanvasCleared

Field Value

UnityEvent

OnCanvasCreated

public UnityEvent OnCanvasCreated

Field Value

UnityEvent

OnPanChanged

public UnityEvent<Vector2> OnPanChanged

Field Value

UnityEvent<Vector2>

OnPointerEnterCanvas

public UnityEvent OnPointerEnterCanvas

Field Value

UnityEvent

OnPointerExitCanvas

public UnityEvent OnPointerExitCanvas

Field Value

UnityEvent

OnZoomChanged

public UnityEvent<float> OnZoomChanged

Field Value

UnityEvent<float>

Properties

CanvasHeight

public int CanvasHeight { get; }

Property Value

int

CanvasRect

public RectTransform CanvasRect { get; }

Property Value

RectTransform

CanvasWidth

public int CanvasWidth { get; }

Property Value

int

CurrentZoom

public float CurrentZoom { get; }

Property Value

float

DrawingEngine

public DrawingEngine DrawingEngine { get; }

Property Value

DrawingEngine

IsPointerOver

public bool IsPointerOver { get; }

Property Value

bool

LayerManager

public LayerManager LayerManager { get; }

Property Value

LayerManager

PanOffset

public Vector2 PanOffset { get; }

Property Value

Vector2

Methods

ClearCanvas()

Clear all layers and start fresh.

public void ClearCanvas()

CreateNewCanvas(int, int, Color?)

Create a new canvas with specified dimensions.

public void CreateNewCanvas(int width, int height, Color? backgroundColor = null)

Parameters

width int
height int
backgroundColor Color?

GetColorAtScreenPosition(Vector2, out Color)

Get color at screen position.

public bool GetColorAtScreenPosition(Vector2 screenPosition, out Color color)

Parameters

screenPosition Vector2
color Color

Returns

bool

OnPointerEnter(PointerEventData)

public void OnPointerEnter(PointerEventData eventData)

Parameters

eventData PointerEventData

OnPointerExit(PointerEventData)

public void OnPointerExit(PointerEventData eventData)

Parameters

eventData PointerEventData

Pan(Vector2)

Add to pan offset.

public void Pan(Vector2 delta)

Parameters

delta Vector2

PickColorFromActiveLayer(Vector2, out Color)

Pick color from current active layer.

public bool PickColorFromActiveLayer(Vector2 screenPosition, out Color color)

Parameters

screenPosition Vector2
color Color

Returns

bool

ResetPan()

Reset pan to center.

public void ResetPan()

ScreenToCanvasPixel(Vector2, out Vector2Int)

Convert screen position to canvas pixel coordinates.

public bool ScreenToCanvasPixel(Vector2 screenPosition, out Vector2Int pixelPosition)

Parameters

screenPosition Vector2
pixelPosition Vector2Int

Returns

bool

SetPan(Vector2)

Set pan offset.

public void SetPan(Vector2 offset)

Parameters

offset Vector2

SetZoom(float)

Set zoom level.

public void SetZoom(float zoom)

Parameters

zoom float

UpdateCanvasDisplay()

Update the canvas display (refresh layer visuals).

public void UpdateCanvasDisplay()

ZoomIn()

Zoom in by step.

public void ZoomIn()

ZoomOut()

Zoom out by step.

public void ZoomOut()

ZoomToActualSize()

Zoom to actual size (100%).

public void ZoomToActualSize()

ZoomToFit()

Zoom to fit canvas in view.

public void ZoomToFit()