Dekorator @export

W Godot 4 @export jest atrybutem używanym do oznaczania zmiennych, które można edytować bezpośrednio w inspektorze edytora scen, co pozwala na ich łatwe przypisywanie i modyfikowanie z poziomu edytora, bez konieczności zmieniania kodu.

Różnice w stosunku do wcześniejszych wersji:

W Godot 3.x używano funkcji export przed deklaracją zmiennej, np.:

export var health: int = 100

W Godot 4 zmieniono składnię na @export, która teraz działa jako atrybut przypisany przed zmienną.

Jak działa @export w Godot 4:

  1. Deklaracja zmiennych z @export:
    Zmienna oznaczona jako @export pojawi się w inspektorze, dzięki czemu można ją ustawiać dla każdego obiektu indywidualnie. Przykład:
   @export var health: int = 100
  1. Eksportowanie różnych typów:
    @export można używać z różnymi typami danych, np.:
  • Proste typy: int, float, bool, String
  • Złożone typy: Vector3, Color, NodePath, Array, Dictionary Przykład dla NodePath:
   @export var player_path: NodePath
  1. Przykład z inspektorem:
    Dzięki temu w inspektorze będziesz mógł przypisać ręcznie zmienną player_path, wybierając odpowiedni węzeł z drzewa scen. To eliminuje potrzebę wpisywania ścieżki bezpośrednio w kodzie.
   @export var player_path: NodePath

   func _ready():
       var player_node = get_node(player_path)
       if player_node:
           print("Gracz został znaleziony!")
       else:
           print("Gracz nie został znaleziony!")
  1. Użycie w dynamicznych typach:
    @export może być również używany z zasobami, takimi jak materiały, dźwięki, tekstury itd. Przykład z teksturą:
   @export var character_texture: Texture2D
  1. Domyślne wartości:
    Możesz ustawić domyślną wartość eksportowanej zmiennej, a następnie zmienić ją z poziomu inspektora. Zmienna będzie miała domyślną wartość w momencie uruchomienia, jeśli nie zostanie zmieniona ręcznie w edytorze. Przykład:
   @export var speed: float = 10.0
  1. Eksportowanie wyliczeń (enums):
    Możesz eksportować wyliczenia (enum) w inspektorze, co pozwala na wybieranie opcji z listy rozwijanej. Przykład:
   enum WeaponType { SWORD, GUN, BOW }
   @export var weapon_type: WeaponType = WeaponType.SWORD
  1. Ograniczenia dla wartości:
    Możesz ustawiać ograniczenia dla eksportowanych zmiennych, np. zakresy dla wartości liczbowych, co zapewnia, że wartości wprowadzone w inspektorze mieszczą się w określonym przedziale. Przykład:
   @export_range(0, 100) var health: int = 100

Przykład użycia @export w pełnym kontekście:

extends CharacterBody3D

@export var speed: float = 10.0
@export var health: int = 100
@export var player_path: NodePath  # Ścieżka do gracza ustawiana w inspektorze

func _ready():
    var player_node = get_node_or_null(player_path)
    if player_node:
        print("Gracz znaleziony!")
    else:
        print("Gracz nie został znaleziony!")

W inspektorze możesz teraz łatwo ustawić wartość player_path na ścieżkę do gracza oraz zmieniać wartości speed i health bez potrzeby modyfikacji kodu.

Podsumowanie:

@export w Godot 4 służy do oznaczania zmiennych, które mają być widoczne i edytowalne w inspektorze. Jest to przydatne, gdy chcesz dostosować zachowanie różnych instancji scen bez konieczności modyfikowania kodu, co zwiększa elastyczność i ułatwia zarządzanie projektem.


Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *