Il codice di programmazione è utile in molte situazioni, come garantire che il codice venga eseguito dopo un'azione o un ciclo specifico, o ritardare il codice per un'area di tempo specifica. Puoi usare la task library per ottimizzare il Schediatore di attività di Roblox per gestire e programmare il codice. Puoi anche usare una library simile chiamata
Metodi Comuni
I seguenti sono i metodi più comuni task metodi usati per pianificare il codice. Dovresti usare i metodi di compito over legacy scheduling methods, such as wait() , to ensure that your code runs optimally.
La seguente tabella elenca i metodi globali pertinenti e le loro controparti preferite, più ottimizzate:
| Metodi globali in eredità | Metodi di compito | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
task.rigenerare
task.spawn() richiede un thread o una funzione e lo riprende immediatamente attraverso il Agendadel motore. Gli argomenti aggiuntivi vengono passati al thread o alla funzione che viene ripresa.
Il seguente codice di esempio mostra come puoi usare task.spawn() quando chiami una funzione che può essere generata mentre si itera su un insieme di oggetti:
local function playerAdded(player)
...
(yield)
end
for _, player in Players:GetPlayers() do
task.spawn(playerAdded, player)
end
task.ifer
task.defer() richiede un thread o una funzione e lo differisce fino al prossimo ciclo di riavvio in cui viene riavviato con il Agendadel motore. Vengono passati ulteriori argomenti al thread o alla funzione di riavvio.
Dovresti tipicamente usare questo quando vuoi un comportamento simile a task.spawn() ma non ti preoccupi della sessione in esecuzione immediatamente. Il seguente esempio di codice mostra come la dichiarazione print() per "A" non eseguirà fino a quando la dichiarazione 1> print()1> per 4> "B4> non es
task.defer(print, "A")print("B")--> B--> A
task.延迟
task.delay() richiede un thread o una funzione e lo programma per la ripresa dopo l'importo di tempo specificato in elapsi sul prossimo Heartbeat passo. La ripresa del thread viene eseguita con gestione degli errori e supporto per le altre funzionalità del motore. Tutti gli argomenti aggiuntivi vengono passati al thread o alla funzione di ripresa.
Poiché il tempo di ritardo reale può essere variato, il seguente esempio di codice mostra come calcolarlo passando il tempo attuale come argomento:
task.delay(2, function(scheduledTime)
print(os.clock() - scheduledTime) --> 2.038702
end, os.clock())
Un valore di zero restituisce il thread o la funzione nella prossima fase.
task.wait
task.wait() restituisce il thread corrente fino alla durata specificata (in secondi) e poi riprende il thread sul prossimo Heartbeat passo.
Il tempo di produzione reale può variare. Il seguente esempio di codice mostra come questo metodo lo restituisce per convenienza:
Poiché il tempo di ritardo reale può essere variato, il seguente esempio di codice mostra come ottenere il tempo reale memorizzando il valore di restituzione del metodo:
local elapsedTime = task.wait(2) -- aspetta 2 secondiprint(elapsedTime) --> 2.0792941
Se non viene specificata alcuna durata, la durata predefinita è zero, il che significa che il thread riprenderà automaticamente al prossimo passo. Ciò significa che task.wait() corrisponde in comportamento a RunService.Heartbeat.