ScreenGui 컨테이너는 플레이어의 화면에 표시할 GuiObjects를 보유하며, 여기에는 프레임, 라벨, 버튼 등이 포함됩니다. 모든 화면 UI 객체 및 코드는 클라이언트에 저장되고 변경됩니다.

모든 플레이어가 경험에 참여할 때 ScreenGui 및 자식 GuiObjects를 표시하려면, 이를 StarterGui 컨테이너 안에 배치하십시오. 플레이어가 경험에 가입하고 캐릭터가 처음 소환되면, ScreenGui와 그 콘텐츠가 해당 플레이어를 위한 PlayerGui 컨테이너로 복제됩니다. 이 컨테이너는 Players 컨테이너 안에 위치합니다.

경험이 커짐에 따라 제목 화면, 설정 메뉴, 상점 인터페이스 등 여러 화면 인터페이스가 필요할 수 있습니다. 이러한 경우, 고유한 여러 ScreenGui 컨테이너를 StarterGui에 배치하고, 각 컨테이너의 Enabled 속성을 보이거나 활성화해야 할지 여부에 따라 전환할 수 있습니다(비활성화 시, 콘텐츠는 렌더링되지 않으며 사용자 입력을 처리하거나 변경에 따라 업데이트되지 않습니다).

Enabled 속성은 속성 창을 통해 초기 설정할 수 있으며, 또는 클라이언트 측 스크립트에서 플레이어의 PlayerGui에 접근하여 원하는 컨테이너에 대해 true 또는 false로 설정할 수 있습니다.
컨테이너 속성
다음 속성을 통해 여러 장치에서 화면 인셋을 사용자 정의하고, 여러 화면 컨테이너를 사용할 때 디스플레이 순서를 설정하는 등의 작업을 할 수 있습니다.
화면 인셋
현대 스마트폰은 전체 화면을 활용하지만 일반적으로 화면 공간을 차지하는 노치, 컷아웃 및 기타 요소를 포함합니다. 모든 Roblox 게임은 또한 상단 바 컨트롤을 포함하여 주요 메뉴, 채팅, 리더보드 등에 빠르게 접근할 수 있습니다.

플레이어가 UI를 쉽게 보고 접근할 수 있도록 하기 위해 Roblox는 ScreenInsets 속성을 제공하여 ScreenGui의 내용에 대한 안전 영역 인셋을 제어합니다.
CoreUISafeInsets의 기본값은 모든 하위 GuiObjects가 코어 UI 안전 영역 내에서 상단 바 버튼 및 기타 화면 컷아웃에서 벗어나도록 유지합니다. 이 설정은 ScreenGui가 인터랙티브 UI 요소를 포함할 경우 권장됩니다.

디스플레이 순서
여러 ScreenGui 인터페이스를 사용할 때, DisplayOrder 속성을 통해 Z-인덱스로 레이어할 수 있습니다. 예를 들어, 한 ScreenGui에서 모달 설정 메뉴를 경험의 주요 사용자 인터페이스 앞에 표시하려면, 모달에 더 높은 DisplayOrder를 할당해야 합니다.
소환 시 재설정
ResetOnSpawn 불리언 속성은 플레이어 캐릭터가 소환될 때마다 ScreenGui가 재설정(자기 자신을 삭제하고 플레이어의 PlayerGui에 재복제됨)되는지를 결정합니다.
| 조건 | 재설정 |
|---|---|
| ResetOnSpawn가 true (기본값)입니다. | 예 |
| ScreenGui가 StarterGui의 간접 자손입니다. 예를 들어, StarterGui 내의 Folder에 배치되었습니다. | 예 |
| ResetOnSpawn가 false이면서 ScreenGui가 StarterGui의 직접 자손입니다. | 아니오 |
플레이어 UI에 접근
앞서 언급했듯이, ScreenGui를 StarterGui에 부모로 설정하면, 플레이어가 경험에 가입하고 캐릭터가 처음 소환될 때, 그 자식 GuiObjects가 플레이어의 PlayerGui 컨테이너로 복제됩니다.
게임 플레이 중 플레이어의 UI 컨테이너를 제어해야 하는 경우, 예를 들어 특정 ScreenGui 또는 그 자식 요소를 표시/숨기려면, 다음과 같이 LocalScript에서 접근하십시오:
LocalScript - 플레이어 UI 접근local Players = game:GetService("Players")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuilocal titleScreen = playerGui:WaitForChild("TitleScreen")local settingsMenu = playerGui:WaitForChild("SettingsMenu")titleScreen.Enabled = false -- 제목 화면 숨기기settingsMenu.Enabled = true -- 설정 메뉴 표시
기본 UI 비활성화
모든 Roblox 게임에는 기본적으로 활성화된 여러 UI 요소가 포함되어 있습니다. 이러한 요소가 필요하지 않거나 자신의 제작물로 교체하고 싶다면, 클라이언트 측 스크립트에서 SetCoreGuiEnabled() 메서드를 사용하여 관련 Enum.CoreGuiType 옵션을 설정할 수 있습니다.
| 기본 UI | 연결된 열거형 |
|---|---|
| 리더보드로 일반적으로 사용되는 동적으로 업데이트되는 Players 목록입니다. 리더보드와 관련이 있습니다. | Enum.CoreGuiType.PlayerList |
| 캐릭터의 Health 바입니다. 캐릭터의 Humanoid가 최대 체력에 도달한 경우 표시되지 않습니다. | Enum.CoreGuiType.Health |
| 게임 내 도구가 포함된 캐릭터의 Backpack입니다. 백팩에 Tools가 없으면 표시되지 않습니다. | Enum.CoreGuiType.Backpack |
| 텍스트 채팅 창입니다. | Enum.CoreGuiType.Chat |
| 캐릭터 이모트의 팝업 메뉴입니다. | Enum.CoreGuiType.EmotesMenu |
| 플레이어의 관점 또는 자신의 캐릭터를 보여주는 창입니다. 플레이어가 Roblox 메뉴에서 자기 뷰를 활성화하지 않으면 표시되지 않습니다. | Enum.CoreGuiType.SelfView |
| 스크린 오른쪽에 위치한 스크린샷 캡처 버튼입니다. 플레이어가 Roblox 메뉴에서 캡처를 활성화하지 않으면 표시되지 않습니다. | Enum.CoreGuiType.Captures |
| 아바타 전환기는 사용자가 플랫폼 아바타를 변경할 수 있게 해줍니다. | Enum.CoreGuiType.AvatarSwitcher |

클라이언트 스크립트 - 기본 UI 요소 비활성화local StarterGui = game:GetService("StarterGui")-- 기본 체력 바와 백팩 비활성화StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
또한 터치 기능이 있는 장치는 기본적으로 가상 조이스틱과 점프 버튼이 포함되어 있습니다. 원하는 경우 클라이언트 측 스크립트에서 GuiService.TouchControlsEnabled를 false로 설정하여 이러한 요소를 숨길 수 있습니다.

클라이언트 스크립트 - 터치 컨트롤 비활성화local GuiService = game:GetService("GuiService")GuiService.TouchControlsEnabled = false