Přenášení měkkých těles
Výchozí povolení je vypnuté; poloměr je 0.15 m, přijímá 0.001..10 m a mění se až po puštění. Použijte stávající profil Carry, nikoli legacy grabber. Výběr testuje deformované fyzikální trojúhelníky, respektuje překážky/vrstvy a celkovou hmotnost Soft Body a drží stálé propojené okolí povrchu. Blízké protější vrstvy nepřichytí přes prostor.
Příklad#
soft.set_grab_enabled(true);
soft.set_grab_radius(0.15);
// Existing carry.update_controls() remains unchanged.
var type = carry.get_held_type();
var held_soft = carry.get_soft_body();
var count = carry.get_grab_vertex_count();Použití a omezení#
Síly pohybují oblastí. Rotace potřebuje alespoň tři vhodné nekolineární volné vrcholy. Piny a úchyty zůstávají; připnutí drženého vrcholu ukončí úchop. Odhození přidá oblasti rychlost s existujícím limitem, nikoli jednu pevnou rychlost celé síti. Soft Body drží současně jediný grabber.
get_held_type vrací none/body/soft_body. get_body pro měkké objekty vrací undefined; použijte get_soft_body. Držení dělí krok světa nejvýše na 1/240 s, případně 1/480 s s dynamickými úchyty, maximálně 64 úseků. Detailní vizuál není samostatný povrch zásahu. Vypnutí uchopení nebo zničení objektu bezpečně pustí.
Přehled API#
Signatury veřejných funkcí a metod. Metody volejte na vrácené instanci; parametry s výchozí hodnotou jsou volitelné.
Související návody#
- Převod staršího kódu
- Výběr měkkého tělesa
- Měkká koule
- Objemový měkký kvádr
- Import uzavřeného modelu
- Látkový model a pojmenované úchyty
- Prostorové úchyty
- Oddělená vizuální síť
- Lokální síla a impulz
- Vítr
Ověřené kontrakty operací#
Následující kontrakty rozlišují jednotky, návratové hodnoty, chyby a životnost podle aktuální implementace. Nevynechávej kontrolu výsledku: false, 0 a undefined mohou mít u různých metod odlišný význam.
| Symbol / vlastník | Signatura | Kontrakt operace |
|---|---|---|
| JoltBBMODBox.get_grab_enabled | JoltBBMODBox.get_grab_enabled() | Boolean nativního nastavení; false také při neplatném objektu. |
| JoltBBMODBox.get_grab_radius | JoltBBMODBox.get_grab_radius() | Poloměr výběru v metrech; undefined při neplatném wrapperu. Nativní chybu čti zvlášť. Výchozí radius 0.15 m. |
| JoltBBMODBox.set_grab_enabled | JoltBBMODBox.set_grab_enabled(enabled) | Boolean nebo 0/1; vrací Boolean úspěchu. Ovládá způsobilost soft body pro Grabber, ne Grip lezení. Výchozí false. |
| JoltBBMODBox.set_grab_radius | JoltBBMODBox.set_grab_radius(radius) | Konečný poloměr 0.001..10 m; Boolean. Určuje lokální výběr částic při uchopení; před změnou držený objekt pusť. Výchozí radius 0.15 m. |
| JoltBBMODCloth.get_grab_enabled | JoltBBMODCloth.get_grab_enabled() | Boolean nativního nastavení; false také při neplatném objektu. |
| JoltBBMODCloth.get_grab_radius | JoltBBMODCloth.get_grab_radius() | Poloměr výběru v metrech; undefined při neplatném wrapperu. Nativní chybu čti zvlášť. Výchozí radius 0.15 m. |
| JoltBBMODCloth.set_grab_enabled | JoltBBMODCloth.set_grab_enabled(enabled) | Boolean nebo 0/1; vrací Boolean úspěchu. Ovládá způsobilost soft body pro Grabber, ne Grip lezení. Výchozí false. |
| JoltBBMODCloth.set_grab_radius | JoltBBMODCloth.set_grab_radius(radius) | Konečný poloměr 0.001..10 m; Boolean. Určuje lokální výběr částic při uchopení; před změnou držený objekt pusť. Výchozí radius 0.15 m. |
| JoltBBMODModel.get_grab_enabled | JoltBBMODModel.get_grab_enabled() | Boolean nativního nastavení; false také při neplatném objektu. |
| JoltBBMODModel.get_grab_radius | JoltBBMODModel.get_grab_radius() | Poloměr výběru v metrech; undefined při neplatném wrapperu. Nativní chybu čti zvlášť. Výchozí radius 0.15 m. |
| JoltBBMODModel.set_grab_enabled | JoltBBMODModel.set_grab_enabled(enabled) | Boolean nebo 0/1; vrací Boolean úspěchu. Ovládá způsobilost soft body pro Grabber, ne Grip lezení. Výchozí false. |
| JoltBBMODModel.set_grab_radius | JoltBBMODModel.set_grab_radius(radius) | Konečný poloměr 0.001..10 m; Boolean. Určuje lokální výběr částic při uchopení; před změnou držený objekt pusť. Výchozí radius 0.15 m. |
| JoltBBMODSoftBody.get_grab_enabled | JoltBBMODSoftBody.get_grab_enabled() | Boolean nativního nastavení; false také při neplatném objektu. |
| JoltBBMODSoftBody.get_grab_radius | JoltBBMODSoftBody.get_grab_radius() | Poloměr výběru v metrech; undefined při neplatném wrapperu. Nativní chybu čti zvlášť. Výchozí radius 0.15 m. |
| JoltBBMODSoftBody.set_grab_enabled | JoltBBMODSoftBody.set_grab_enabled(enabled) | Boolean nebo 0/1; vrací Boolean úspěchu. Ovládá způsobilost soft body pro Grabber, ne Grip lezení. Výchozí false. |
| JoltBBMODSoftBody.set_grab_radius | JoltBBMODSoftBody.set_grab_radius(radius) | Konečný poloměr 0.001..10 m; Boolean. Určuje lokální výběr částic při uchopení; před změnou držený objekt pusť. Výchozí radius 0.15 m. |
| JoltBBMODSphere.get_grab_enabled | JoltBBMODSphere.get_grab_enabled() | Boolean nativního nastavení; false také při neplatném objektu. |
| JoltBBMODSphere.get_grab_radius | JoltBBMODSphere.get_grab_radius() | Poloměr výběru v metrech; undefined při neplatném wrapperu. Nativní chybu čti zvlášť. Výchozí radius 0.15 m. |
| JoltBBMODSphere.set_grab_enabled | JoltBBMODSphere.set_grab_enabled(enabled) | Boolean nebo 0/1; vrací Boolean úspěchu. Ovládá způsobilost soft body pro Grabber, ne Grip lezení. Výchozí false. |
| JoltBBMODSphere.set_grab_radius | JoltBBMODSphere.set_grab_radius(radius) | Konečný poloměr 0.001..10 m; Boolean. Určuje lokální výběr částic při uchopení; před změnou držený objekt pusť. Výchozí radius 0.15 m. |