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
Was this helpful?