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์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์œ ํšจํ•œ์ง€ ํ™•์ธ ํ•  ์ˆ˜์žˆ์–ด์š”.

ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ์˜ ๊ฐ’์ด ์œ ํšจํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ฒกํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, Vector ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‹ค์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, number ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ bool๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, bool ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, string ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ปฌ๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, Color ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

Last updated