Cechy SubViewportContainer
:
- Automatyczne zarządzanie teksturą
SubViewport
:SubViewportContainer
automatycznie pobiera teksturę zSubViewport
i wyświetla ją na ekranie, co upraszcza proces używaniaSubViewport
. - Dostosowanie rozmiaru i skalowania: Możesz łatwo kontrolować, jak
SubViewport
jest skalowany i wyświetlany w interfejsie użytkownika lub jako element sceny. - Integracja z UI: Dzięki obsłudze przez
Control
,SubViewportContainer
może być używany jako część interfejsu użytkownika (np. mini-mapka, podgląd kamery, okno podglądu postaci).
SubViewportContainer
w Godot 4 to węzeł, który służy do wyświetlania zawartości SubViewport
na ekranie. Jest specjalnie zaprojektowany, aby automatycznie wyświetlać to, co jest renderowane przez SubViewport
, jako element interfejsu użytkownika (UI) lub w innych częściach gry. Działa jak kontener, który „trzyma” SubViewport
, dzięki czemu można łatwo renderować jego zawartość bez potrzeby ręcznego konfigurowania tekstur.
Jak używać SubViewportContainer
w Godot 4:
1. Dodanie SubViewport
i SubViewportContainer
do sceny
- W drzewie scen kliknij „Dodaj węzeł”.
- Dodaj
SubViewportContainer
do swojej sceny. - Dodaj
SubViewport
jako dzieckoSubViewportContainer
. - Umieść elementy 2D lub 3D w
SubViewport
, aby zobaczyć, jak są renderowane wSubViewportContainer
.
Przykład struktury sceny:
MainScene
└── SubViewportContainer
└── SubViewport
├── Camera3D (dla sceny 3D)
└── Sprite2D (dla sceny 2D)
W tej strukturze SubViewportContainer
będzie wyświetlał wszystko, co jest renderowane w SubViewport
. Możesz kontrolować rozmiar i pozycję SubViewportContainer
, aby dostosować wyświetlanie zawartości.
2. Konfigurowanie SubViewport
w inspektorze
- Ustaw
Size
(Rozmiar
): Możesz ustawić rozmiarSubViewport
, aby określić, jak duży będzie renderowany obszar. - Wybierz
Usage
(Zastosowanie
): Możesz ustawić, czySubViewport
renderuje scenę2D
czy3D
. Transparent Background
(Przezroczyste Tło
): Umożliwia renderowanie z przezroczystym tłem, co może być przydatne w przypadku nakładania zawartości na inne elementy UI.
3. Przykład skryptu do dynamicznego tworzenia SubViewportContainer
Tworzenie dynamicznego podglądu:
extends Control
func _ready():
# Tworzenie SubViewport
var sub_viewport = SubViewport.new()
sub_viewport.size = Vector2(400, 300)
sub_viewport.usage = SubViewport.USAGE_3D
add_child(sub_viewport)
# Dodanie kamery do SubViewport
var camera = Camera3D.new()
camera.global_transform.origin = Vector3(0, 0, 5)
sub_viewport.add_child(camera)
# Tworzenie SubViewportContainer i przypisanie do niego SubViewport
var container = SubViewportContainer.new()
container.size_flags_horizontal = Control.SIZE_EXPAND_FILL
container.size_flags_vertical = Control.SIZE_EXPAND_FILL
container.add_child(sub_viewport)
add_child(container)</code></pre>
Co robi ten skrypt:
- Tworzy
SubViewport
, ustawia jego rozmiar i typ renderowania.
- Dodaje kamerę 3D do
SubViewport
, aby wyświetlić scenę 3D.
- Tworzy
SubViewportContainer
i umieszcza w nim SubViewport
, aby automatycznie renderować jego zawartość na ekranie.
4. Typowe zastosowania SubViewportContainer
- Mini-mapki i podglądy:
- Użyj
SubViewportContainer
, aby wyświetlić podgląd mapy, która jest renderowana przez osobną kamerę w SubViewport
. Możesz łatwo umieścić mini-mapę w rogu ekranu, aby pokazać, gdzie znajduje się gracz w świecie gry.
- Ekrany i monitory w grze:
SubViewportContainer
świetnie sprawdza się do wyświetlania treści, takich jak monitory komputerów, ekrany kontrolne lub telewizory w świecie gry. Możesz renderować osobną scenę w SubViewport
i wyświetlać ją jako teksturę na powierzchni obiektu 3D.
- Podgląd postaci:
- Tworzenie podglądu postaci (np. w menu ekwipunku), gdzie
SubViewport
renderuje osobną scenę z modelem postaci, a SubViewportContainer
wyświetla ją na UI.
- Interaktywne UI w przestrzeni 3D:
SubViewport
może być używany do renderowania interfejsu użytkownika jako osobnej sceny 2D, a następnie używania SubViewportContainer
do wyświetlania tego interfejsu jako elementu interaktywnego w przestrzeni 3D.
5. Skalowanie i dostosowywanie SubViewportContainer
Stretch
(Rozciąganie
): Możesz ustawić, jak SubViewportContainer
ma skalować swoją zawartość. Dostępne opcje to:
Keep
: Zachowuje oryginalny rozmiar SubViewport
.
Keep Aspect
: Zachowuje proporcje SubViewport
podczas skalowania.
Expand
: Rozciąga SubViewport
, aby dopasować się do rozmiaru kontenera.
- Używanie
Margins
i Anchors
: Możesz używać Anchors
i Margins
, aby precyzyjnie umiejscowić SubViewportContainer
w ramach UI.
Przykład: Tworzenie lustra w grze
extends Node3D
func _ready():
# Tworzenie SubViewport do renderowania lustrzanego widoku
var sub_viewport = SubViewport.new()
sub_viewport.size = Vector2(256, 256)
sub_viewport.usage = SubViewport.USAGE_3D
add_child(sub_viewport)
# Dodanie kamery 3D do SubViewport
var camera = Camera3D.new()
camera.global_transform.origin = Vector3(0, 0, -5)
camera.look_at(Vector3.ZERO)
sub_viewport.add_child(camera)
# Wyświetlenie SubViewport jako tekstura na powierzchni lustra
var mirror_material = StandardMaterial3D.new()
mirror_material.albedo_texture = sub_viewport.get_texture()
var plane = MeshInstance3D.new()
plane.mesh = PlaneMesh.new()
plane.set_surface_override_material(0, mirror_material)
add_child(plane)</code></pre>
Podsumowanie:
SubViewportContainer
w Godot 4 jest specjalnym węzłem, który umożliwia wyświetlanie zawartości SubViewport
na ekranie w prosty i efektywny sposób. Pozwala na łatwe zarządzanie renderowaniem podglądów, mini-map, luster, interaktywnych UI, a także na używanie SubViewport
jako tekstury w świecie gry 3D. Dzięki integracji z UI możesz tworzyć bardziej dynamiczne i interaktywne elementy wizualne w grach.
Published using WordPress Blurt Publisher from https://godot.com.pl.