WidgetBase

WidgetBase

ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ‚¬μš©λ˜λŠ” Widget Base 객체.

이벀트

OnVisibleEvent

widget이 λ³΄μ—¬μ§ˆ λ•Œ ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”. μ—°κ²°ν•¨μˆ˜ ν˜•μ‹μ€ function(widget), widget 은 λ³΄μ—¬μ§€λŠ” widget 객체 μž…λ‹ˆλ‹€.

-- μƒ˜ν”Œ --

local widget = Workspace.Frame

local function VisibleEvent(self)
    print(self.Name, " Visible!")
end
widget.OnVisibleEvent:Connect(VisibleEvent)

widget.Visible = true

OnInVisibleEvent

widget이 μ•ˆ λ³΄μ—¬μ§ˆ λ•Œ ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”. μ—°κ²°ν•¨μˆ˜ ν˜•μ‹μ€ function(widget), widget 은 μ•ˆ λ³΄μ—¬μ§€λŠ” widget 객체 μž…λ‹ˆλ‹€.

-- μƒ˜ν”Œ --

local widget = Workspace.Frame

local function InVisibleEvent(self)
    print(self.Name, " InVisible!")
end
widget.OnInVisibleEvent:Connect(InVisibleEvent)

widget.Visible = false

OnBeginDragEvent

widget의 λ“œλž˜κ·Έκ°€ μ‹œμž‘ 될 λ•Œ ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”. μ—°κ²°ν•¨μˆ˜ ν˜•μ‹μ€ function(widget, vector2D), widget은 ν΄λ¦­ν•œ 객체, vector2DλŠ” 마우슀 μœ„μΉ˜μ—μš”.

-- μƒ˜ν”Œ --

local ScreenUI = Workspace.ScreenUI
local DragWidget = ScreenUI.Slot

-- λ“œλž˜κ·Έ μ‹œμž‘μ‹œ
local function BeginDrag(self, position)
    print(self.Name, " BeginDragEvent!")
    print(self.Name, " BeginPosition : ", position)
end
DragWidget.OnBeginDragEvent:Connect(BeginDrag)  -- λ“œλž˜κ·Έ μ‹œμž‘μ‹œ 호좜 이벀트 μ—°κ²°

-- λ“œλž˜κ·Έ μƒνƒœμ—μ„œ ν‘œμ‹œν•  μœ„μ ― μ„€μ •
DragWidget:SetDragWidget(DragWidget)              -- λ“œλž˜κ·Έ 이벀트 λ°œμƒμ‹œ λ³΅μ œν•΄μ„œ ν‘œμ‹œν•  μœ„μ ―μ„ μ„€μ • (λ―Έμ‚¬μš©μ‹œ μƒλž΅ κ°€λŠ₯)
DragWidget:SetDragOffset(Vector.new(-50, -50, 0)) -- 볡제 μœ„μ ―μ— μœ„μΉ˜ Offset 적용 (λ―Έμ‚¬μš©μ‹œ μƒλž΅ κ°€λŠ₯)

OnCancelDragEvent

widget의 λ“œλž˜κ·Έκ°€ μ·¨μ†Œλ  λ•Œ ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”. μ—°κ²°ν•¨μˆ˜ ν˜•μ‹μ€ function(widget, vector2D), widget은 ν΄λ¦­ν•œ 객체, vector2DλŠ” 마우슀 μœ„μΉ˜μ—μš”.

-- μƒ˜ν”Œ --

local ScreenUI = Workspace.ScreenUI
local DragWidget = ScreenUI.Slot

-- λ“œλž˜κ·Έ μ·¨μ†Œμ‹œ
local function CancelDrag(self, position)
    print(self.Name, " CancelDragEvent!")
    print(self.Name, " CancelPosition : ", position)
end
DragWidget.OnCancelDragEvent:Connect(CancelDrag) -- λ“œλž˜κ·Έ μ·¨μ†Œμ‹œ 호좜 이벀트 μ—°κ²°

OnEndDragEvent

widget의 λ“œλž˜κ·Έκ°€ λ“œλžλ  λ•Œ ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”. μ—°κ²°ν•¨μˆ˜ ν˜•μ‹μ€ function(widget, vector2D, dragwidget), widget은 λ“œλžν•œ 객체, vector2DλŠ” 마우슀 μœ„μΉ˜, dragwidgetλŠ” λ“œλž˜κ·Έν•œ widgetμ—μš”.

-- μƒ˜ν”Œ --

local ScreenUI = Workspace.ScreenUI
local DropArea = ScreenUI.ScrollBox

-- λ“œλžμ‹œ
local function EndDrag(self, position, dragWidget)
    print(self.Name, " DropEvent : ", dragWidget.Name)
    print(self.Name, " DropPosition : ", position)

    dragWidget:SetParentUIWidget(self) -- λΆ€λͺ¨ μœ„μ ― λ³€κ²½
end
DropArea.OnEndDragEvent:Connect(EndDrag) -- λ“œλž 이벀트 μ—°κ²°
                                         -- (μ΄λ²€νŠΈκ°€ μ—°κ²°λœ 객체의 μžμ‹μ€ λͺ¨λ‘ Interaction이 κΊΌμ Έμžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.)

속성

Location

μœ„μ ―μ˜ μœ„μΉ˜λ₯Ό λ³€κ²½ν•  수 μžˆμ–΄μš”. (Xμ’Œν‘œ κ°’, Yμ’Œν‘œ κ°’, 0)

-- μƒ˜ν”Œ --

widget.UIPosition = Vector.new(150, 150, 0)

Rotation

μœ„μ ―μ˜ νšŒμ „μ„ μ„€μ •ν•  수 μžˆμ–΄μš”. (μ„€μ •ν•  κ°’)

-- μƒ˜ν”Œ --

widget.UIRotation = 90

Scale

μœ„μ ―μ˜ μŠ€μΌ€μΌμ„ μ„€μ •ν•  수 μžˆμ–΄μš”. (μ„€μ •ν•  κ°’)

-- μƒ˜ν”Œ --

widget.UIScale = 0.5

Size

μœ„μ ―μ˜ 크기λ₯Ό μ„€μ •ν•  수 μžˆμ–΄μš”. (κ°€λ‘œκ°’, μ„Έλ‘œκ°’, 0)

-- μƒ˜ν”Œ --

widget.Size = Vector.new(200, 200, 0)

ZOrder

μœ„μ ―μ˜ κ·Έλ¦¬λŠ” μˆœμ„œλ₯Ό μ„€μ •ν•  수 μžˆμ–΄μš”.

-- μƒ˜ν”Œ --

local Frame = Workspace.ScreenUI.Frame
Frame.ZOrder = 100

Visible

UI μœ„μ ―μ˜ ν‘œμ‹œ μ—¬λΆ€λ₯Ό μ„€μ •ν•  수 μžˆμ–΄μš”. (μœ„μ ― ν‘œμ‹œ μ—¬λΆ€)

-- μƒ˜ν”Œ --

widget.Visible = false

Interaction

UI μœ„μ ―μ˜ λ°˜μ‘ μ—¬λΆ€λ₯Ό μ„€μ •ν•  수 μžˆμ–΄μš”. (μœ„μ ― λ°˜μ‘ μ—¬λΆ€)

-- μƒ˜ν”Œ --

widget.Interaction = false

Opacity

μœ„μ ―μ˜ 투λͺ… 값을 μ„€μ •ν•  수 μžˆμ–΄μš”. (μ„€μ •ν•  κ°’)

-- μƒ˜ν”Œ --

widget.Opacity = 0.5

AnchorType

μœ„μ ―μ˜ κ³ μ • μ—¬λΆ€λ₯Ό μ„€μ •ν•  수 μžˆμ–΄μš”. (μ„€μ •ν•  νƒ€μž…)

-- μƒ˜ν”Œ --

local Frame = Workspace.ScreenUI.Frame
Frame.Anchor = Enum.WidgetAnchorType.LeftTop

IsFill

μœ„μ ―μ˜ μ±„μš°κΈ°λ₯Ό μ„€μ •ν•  수 μžˆμ–΄μš”.

-- μƒ˜ν”Œ --

local Frame = Workspace.ScreenUI.Frame
Frame.Fill = true

ν•¨μˆ˜

void AddChildUIScene(string ChildUISceneName, UIScene ObjectUIScene)

(deprecate) AddChildUIWidget ν•¨μˆ˜λ‘œ μ΄μš©ν•˜μ„Έμš”.

void AddChildWidget(UIWidget Widget)

μžμ‹ UI μœ„μ ―μ„ μΆ”κ°€ν•  수 μžˆμ–΄μš”. (μžμ‹μœΌλ‘œ μΆ”κ°€ν•  UI μœ„μ ―)

-- μƒ˜ν”Œ --

local TargetUI = Workspace.ScreenUI
local newFrame = Game:CreateUIWidget(Toybox.CopyUI.Frame) --UI μœ„μ ―λ₯Ό μƒμ„±ν•œλ’€, λ³€μˆ˜μ— ν• λ‹Ήν•΄μš”.

TargetUI:AddChildUIWidget(newFrame) --TargetUI의 μžμ‹ 객체둜 μœ„μ ―(newFrame)을 μ§€μ •ν•΄μš”.

void SetParentWidget(UIWidget ParentWidget)

λΆ€λͺ¨ UI μœ„μ ―μ„ μ„€μ •ν•  수 μžˆμ–΄μš”. (λΆ€λͺ¨λ‘œ μ„€μ •ν•  UI μœ„μ ―)

-- μƒ˜ν”Œ --

local TargetWidget = Toybox.ScreenUI.Image
TargetWidget:SetParentUIWidget(Workspace.ScreenUI.Frame) --ScreenUI.Frame의 μžμ‹ 객체둜 μœ„μ ―(TargetWidget)을 μ§€μ •ν•΄μš”.

void Delete()

μœ„μ ―μ„ μ œκ±°ν•  수 μžˆμ–΄μš”.

-- μƒ˜ν”Œ --

local TargetUI = Workspace.ScreenUI.Frame
TargetUI:Delete()

string GetTypeString()

μœ„μ ―μ˜ νƒ€μž…μ„ λ¬Έμžμ—΄λ‘œ 얻을 수 μžˆμ–΄μš”.

-- μƒ˜ν”Œ --

local TargetUI = Workspace.ScreenUI.Frame
print(TargetUI:GetTypeString())

UIWidgetType GetType()

μœ„μ ―μ˜ νƒ€μž…μ„ Enum ν˜•μ‹μœΌλ‘œ 얻을 수 μžˆμ–΄μš”.

-- μƒ˜ν”Œ --

local TargetUI = Workspace.ScreenUI.Frame
print(TargetUI:GetType())

void SetDragWidget()

μœ„μ ―μ˜ DragEvent λ°œμƒ μ‹œ λ³΅μ‚¬λ˜μ–΄ λ³΄μ—¬μ§ˆ widget을 μ„ΈνŒ…ν•΄μš”.

-- μƒ˜ν”Œ --

local ScreenUI = Workspace.ScreenUI
local DragWidget = ScreenUI.Slot

-- λ“œλž˜κ·Έ μ‹œμž‘μ‹œ
local function BeginDrag(self, position)
    print(self.Name, " BeginDragEvent!")
    print(self.Name, " BeginPosition : ", position)
end
DragWidget.OnBeginDragEvent:Connect(BeginDrag)  -- λ“œλž˜κ·Έ μ‹œμž‘μ‹œ 호좜 이벀트 μ—°κ²°

-- λ“œλž˜κ·Έ μƒνƒœμ—μ„œ ν‘œμ‹œν•  μœ„μ ― μ„€μ •
DragWidget:SetDragWidget(DragWidget)              -- λ“œλž˜κ·Έ 이벀트 λ°œμƒμ‹œ λ³΅μ œν•΄μ„œ ν‘œμ‹œν•  μœ„μ ―μ„ μ„€μ • (λ―Έμ‚¬μš©μ‹œ μƒλž΅ κ°€λŠ₯)
DragWidget:SetDragOffset(Vector.new(-50, -50, 0)) -- 볡제 μœ„μ ―μ— μœ„μΉ˜ Offset 적용 (λ―Έμ‚¬μš©μ‹œ μƒλž΅ κ°€λŠ₯)

void SetDragOffset(WidgetAnchorType type)

μœ„μ ―μ˜ DragWidget에 적용될 Offset μ΄μ—μš”.

-- μƒ˜ν”Œ --

local ScreenUI = Workspace.ScreenUI
local DragWidget = ScreenUI.Slot

-- λ“œλž˜κ·Έ μ‹œμž‘μ‹œ
local function BeginDrag(self, position)
    print(self.Name, " BeginDragEvent!")
    print(self.Name, " BeginPosition : ", position)
end
DragWidget.OnBeginDragEvent:Connect(BeginDrag)  -- λ“œλž˜κ·Έ μ‹œμž‘μ‹œ 호좜 이벀트 μ—°κ²°

-- λ“œλž˜κ·Έ μƒνƒœμ—μ„œ ν‘œμ‹œν•  μœ„μ ― μ„€μ •
DragWidget:SetDragWidget(DragWidget)              -- λ“œλž˜κ·Έ 이벀트 λ°œμƒμ‹œ λ³΅μ œν•΄μ„œ ν‘œμ‹œν•  μœ„μ ―μ„ μ„€μ • (λ―Έμ‚¬μš©μ‹œ μƒλž΅ κ°€λŠ₯)
DragWidget:SetDragOffset(Enum.WidgetAnchorType.LeftTop) -- 볡제 μœ„μ ―μ— 액컀 적용 (λ―Έμ‚¬μš©μ‹œ μƒλž΅ κ°€λŠ₯)

μ‚¬μš© κ°€λŠ₯ν•œ λΆ€λͺ¨ 였브젝트 κΈ°λŠ₯λ“€

속성

이름

μ„€λͺ…

λΆ€λͺ¨ 객체λ₯Ό 얻을 수 μžˆμ–΄μš”.

객체의 μ΄λ¦„μž…λ‹ˆλ‹€.

이벀트

이름

μ„€λͺ…

ν•¨μˆ˜

이름

μ„€λͺ…

μΆ”κ°€λœ 값이 λ³€κ²½ 될 λ•Œ ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ—μš”. (Value 이름, μ—°κ²° ν•¨μˆ˜)

μ΄λ¦„μœΌλ‘œ μžμ‹ 객체λ₯Ό 얻을 수 μžˆμ–΄μš”. (찾고싢은 μžμ‹ 객체 이름)

μžμ‹ 객체의 리슀트λ₯Ό 얻을 수 μžˆμ–΄μš”.

캐릭터인지 확인할 수 μžˆμ–΄μš”.

μŠ€ν…Œν‹± λ©”μ‹œμΈμ§€ 확인할 수 μžˆμ–΄μš”.

FX인지 확인할 수 μžˆμ–΄μš”.

Sound인지 확인할 수 μžˆμ–΄μš”.

포인트 λΌμ΄νŠΈμΈμ§€ 확인할 수 μžˆμ–΄μš”.

슀포트 λΌμ΄νŠΈμΈμ§€ 확인할 수 μžˆμ–΄μš”.

μ„œν”ΌμŠ€ UI인지 확인할 수 μžˆμ–΄μš”.

슀크린 UI인지 확인할 수 μžˆμ–΄μš”.

ν„°μΉ˜ UI인지 확인할 수 μžˆμ–΄μš”.

μ•„μ΄ν…œμΈμ§€ 확인할 수 μžˆμ–΄μš”.

NPC인지 확인할 수 μžˆμ–΄μš”.

μŠ€νŠΈλ¦½νŠΈμΈμ§€ 확인할 수 μžˆμ–΄μš”.

Collider인지 확인할 수 μžˆμ–΄μš”.

Widget인지 확인할 수 μžˆμ–΄μš”.

Camera인지 확인할 수 μžˆμ–΄μš”.

ν•΄λ‹Ή μ˜€λΈŒμ νŠΈκ°€ μœ νš¨ν•œμ§€ 확인 ν•  μˆ˜μžˆμ–΄μš”.

ν•΄λ‹Ή 였브젝트의 값이 μœ νš¨ν•œμ§€ 확인할 수 μžˆμ–΄μš”.

Last updated