Controller

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Nella Libreria di Controller del Personaggio (CCL), un'istanza centrale di ControllerManager gestisce la simulazione fisica del personaggio e la sua interazione con l'ambiente. Questo include diversi cambiamenti intenzionali nel movimento/sensazione progettati per risolvere le incoerenze legate al Humanoid legacy, così come miglioramenti fisici come l'attrito del suolo, curve di accelerazione lineare e una realistica conservazione della quantità di moto lineare e angolare durante il salto.

Abilitare CCL

La CCL è opzionale tramite la finestra Impostazioni dell'Avatar di Studio. Per abilitarla:

  1. Dalla scheda Avatar, apri Impostazioni dell'Avatar.

    Impostazioni dell'Avatar indicate nella barra degli strumenti di Studio
  2. Seleziona la scheda Movimento sul lato sinistro della finestra e, nella sezione Abilità, seleziona Libreria del Controller del Personaggio.

    Attivazione della Libreria del Controller del Personaggio nella finestra delle Impostazioni dell'Avatar
  3. Tutte le abilità standard come Corsa, Salto e Arrampicata sono abilitate per impostazione predefinita. Per disabilitarne alcune durante il runtime, deseleziona la casella associata.

Struttura

Sotto l'istanza centrale di ControllerManager all'interno del modello del personaggio, controller individuali come GroundController e AirController definiscono come il movimento viene applicato al personaggio. Le abilità interagiscono quindi con il ControllerManager e le sue discendenti per modificare i comportamenti dei controller o passare tra i controller.

Configurazione

Mentre il tuo gioco è in esecuzione (o tramite uno script che gira da ServerScriptService), puoi sperimentare con il core ControllerManager e i controller integrati.

Esecuzione

Per sperimentare con le configurazioni dei controller durante l'esecuzione:

  1. Inizia un playtest.

  2. Nell'Esplora, trova il modello del personaggio nel Workspace e poi espandi l'albero di ControllerManager:

  3. Seleziona o ControllerManager o uno dei suoi controller discendenti e, nella finestra Proprietà, personalizza proprietà come quelle riassunte nelle tabelle sottostanti (nota che queste tabelle non sono esaustive; si prega di consultare la documentazione delle classi API per opzioni di proprietà aggiuntive).

    ProprietàDescrizione
    BaseMoveSpeedLa velocità di movimento lineare di base utilizzata da tutti i controller. I controller personalizzano individualmente la velocità di movimento tramite la loro proprietà MoveSpeedFactor.
    BaseTurnSpeedLa velocità di rotazione angolare di base utilizzata da tutti i controller per allineare il personaggio a fronteggiare la direzione desiderata. Alcuni controller personalizzano individualmente la velocità di rotazione tramite la loro proprietà TurnSpeedFactor.
    UpDirectionVector3 che indica il vettore rivolto verso l'alto per il ControllerManager.RootPart.

Scriptato

Per impostare configurazioni del controller per tutti i personaggi tramite uno script:

  1. Crea un nuovo Script lato server all'interno di ServerScriptService e rinominalo in ControllerScript.

  2. Copia e incolla il seguente codice nel nuovo script. Questo esempio aumenta la velocità di movimento/rotazione a terra e aggiunge un leggero tempo di accelerazione e decelerazione. Sentiti libero di regolare altre proprietà come quelle descritte nelle tabelle sopra o per ciascuna classe come documentato (ControllerManager; GroundController; AirController; ClimbController; SwimController).

    Script in ServerScriptService

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    local ControllerManager = character:FindFirstChildWhichIsA("ControllerManager")
    if ControllerManager then
    local GroundController = ControllerManager:FindFirstChild("GroundController")
    if GroundController then
    -- Raddoppia le velocità di movimento e rotazione
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- Aggiungi leggeri tempi di accelerazione e decelerazione
    GroundController.AccelerationTime = 0.2
    GroundController.DecelerationTime = 0.4
    end
    end
    end
    local function onPlayerAdded(player)
    if player.Character then
    onCharacterAdded(player.Character)
    end
    player.CharacterAdded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.