SubViewportContainer Node

in polish •  2 days ago 

Cechy SubViewportContainer:

  • Automatyczne zarządzanie teksturą SubViewport: SubViewportContainer automatycznie pobiera teksturę z SubViewport i wyświetla ją na ekranie, co upraszcza proces używania SubViewport.
  • 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

  1. W drzewie scen kliknij „Dodaj węzeł”.
  2. Dodaj SubViewportContainer do swojej sceny.
  3. Dodaj SubViewport jako dziecko SubViewportContainer.
  4. Umieść elementy 2D lub 3D w SubViewport, aby zobaczyć, jak są renderowane w SubViewportContainer.

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ć rozmiar SubViewport, aby określić, jak duży będzie renderowany obszar.
  • Wybierz Usage (Zastosowanie): Możesz ustawić, czy SubViewport renderuje scenę 2D czy 3D.
  • 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

  1. 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.
  1. 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.
  1. 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.
  1. 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.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE BLURT!