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?