Pomocné skripty · Sockets
První dokovací spojení
Vytvoření prvního fyzikálně přitahovaného Fixed spojení krok za krokem.
Nejmenší funkční sestava obsahuje dvě různá tělesa, jeden male socket a jeden female socket se stejným typem. Jakmile se dostanou do search distance, male se přiblíží k female a po přesném ustálení vznikne connection.
Kompletní příklad#
// Dynamic předmět, který se bude přitahovat.
var tool = jolt_box_create_dynamic(-1, 0, 1, 0.3, 0.3, 0.3, { mass: 2 });
// Static nebo Kinematic držák.
var holder = jolt_box_create_static(0, 0, 1, 0.4, 0.4, 0.4);
tool_socket = jolt_socket(tool, "male", "tool_mount", {
position: { x: 0.3, y: 0, z: 0 },
attraction: true,
attraction_force: 150,
attraction_torque: 30,
connection_type: "fixed",
collision: false
});
holder_socket = jolt_socket(holder, "female", "tool_mount", {
position: { x: -0.4, y: 0, z: 0 }
});Co znamenají jednotlivé části#
- První argument jolt_socket je parent JoltBody. Socket automaticky sleduje jeho posun i rotaci.
- Řetězce male a female určují polaritu. Automaticky se spojuje pouze male s female.
- tool_mount je compatibility type. Rozdílné typy se nikdy nestanou kandidáty.
- position je offset v local-space body originu, nikoli world souřadnice.
- Recept connection_type, attraction, collision a break limity nastavujte na male socketu.
Update a stav#
// Běžný physics update už Socket systém obslouží.
jolt_update();
if (tool_socket.is_connected()) {
// Oba sockety ukazují na stejný JoltSocketConnection.
var connection = tool_socket.connection;
}
// Programové rozpojení:
tool_socket.disconnect();Když se spojení nevytvoří#
- Ověřte, že physics world běží a oba body i sockety vracejí is_valid().
- Zkontrolujte shodný compatibility type, opačnou polaritu a enabled stav.
- Zapněte JOLT_DEBUG_SOCKETS a ověřte local offset i orientaci barevných os.
- Zvětšete search_distance pouze pro hledání; position_tolerance neurčuje dosah attraction.
- Male musí být Dynamic, má-li jej attraction pohybovat. Female může být Dynamic, Kinematic nebo Static.