CollisionShape3D to węzeł w Godot, który definiuje kształt kolizji dla obiektów 3D, takich jak RigidBody3D, czy StaticBody3D. Sama CollisionShape3D nie wykonuje żadnej logiki fizycznej, ale współpracuje z innymi obiektami, aby dostarczać informacje na temat kolizji.
Główne właściwości:
- shape: Ustawienie kształtu kolizji. Można przypisać różne kształty, takie jak:
- BoxShape3D (prostopadłościan),
- SphereShape3D (sfera),
- CapsuleShape3D (kapsuła),
- ConvexPolygonShape3D (wielokąt wypukły),
- ConcavePolygonShape3D (wielokąt wklęsły).
- disabled: Włącza lub wyłącza kształt kolizji. Jeśli kształt jest wyłączony, obiekt go nie uwzględnia w symulacji kolizji.
Jak to działa?
CollisionShape3D definiuje rzeczywisty kształt fizyczny dla obiektu 3D. Przykładowo, jeśli masz postać z modelem 3D, możesz chcieć dodać CollisionShape3D, aby postać nie przenikała przez ściany lub inne przeszkody w świecie gry. Kształty kolizji można ustawić w edytorze lub za pomocą skryptu, dostosowując rozmiar i typ kształtu w zależności od potrzeb.
Przykład:
# Dodanie CollisionShape3D do RigidBody3D w skrypcie
var collision_shape = CollisionShape3D.new()
var box_shape = BoxShape3D.new()
box_shape.size = Vector3(1, 1, 1) # Ustawienie rozmiaru prostopadłościanu
collision_shape.shape = box_shape
add_child(collision_shape)
W tym przykładzie, tworzony jest kształt kolizji w formie prostopadłościanu i dodawany do RigidBody3D. Można także ustawiać inne kształty kolizji, takie jak kula, kapsuła czy wielokąt.
Zastosowanie:
- RigidBody3D: Do symulowania fizyki z prawdziwą dynamiką (np. zderzenia, grawitacja).
- StaticBody3D: Do statycznych przeszkód, które nie poruszają się, ale blokują inne obiekty.
CollisionShape3D jest kluczowym elementem systemu fizyki Godot i zapewnia odpowiednie interakcje fizyczne pomiędzy obiektami w przestrzeni 3D.