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?