Seat
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un tipo di BasePart che un personaggio del giocatore può 'sit' in. Quando un personaggio tocca un oggetto Seat abilitato, viene aggiunto al part by un Weld e gli script del personaggio predefinito giocano un'animazionidi seduta.
Come funzionano i Seat?
Quando un modello contenente un Humanoid e un BasePart chiamato 'HumanoidRootPart' (in generale un personaggio del giocatore) tocca un sedile, viene creato un Class.
Quando si sede la proprietà Seat.Occupant è impostata su Humanoid che si trova 'sitting' nel sedile. Inoltre la proprietà Humanoid.SeatPart del sedile è impostata su.
Un personaggio può anche essere costretto a sedersi in un seggio utilizzando la funzione Seat:Sit() .
Ci sono due modi per far uscire un personaggio da un sedile. Quando un giocatore salta, vengono rimossi dal sedile. Tuttavia, questo può essere fatto manualmente distruggendo il saldaturadi fusione, per esempio:
sedile:FindFirstChild("SeatWeld"):Destroy()
I sedili hanno un cooldown (attualmente 3 secondi) che è sulla base per personaggio per sedile. Ciò significa che una volta che un personaggio è uscito da un sedile, non può sedersi sullo stesso sedile per 3 secondi. Questo comportamento di cooldown può cambiare e non deve essere affidato dai sviluppatori.
Per cosa possono essere utilizzati i sedili?
I sedili hanno una gamma diversificata di utilizzi, che va dal più ovvio al meno convenzionale.
- Creare sedie o panchine senza il bisogno di alcuna programmazione
- Permetti ai personaggi di 'sit' in oggetti in movimento come veicoli senza ottenere flung intorno
- Creazione di interfacce che sono controllate dal personaggio nel sedile utilizzando la ProprietàSeat.Occupant
Campioni di codice
local Players = game:GetService("Players")
local seat = Instance.new("Seat")
seat.Anchored = true
seat.Position = Vector3.new(0, 1, 0)
seat.Parent = workspace
local currentPlayer = nil
local function onOccupantChanged()
local humanoid = seat.Occupant
if humanoid then
local character = humanoid.Parent
local player = Players:GetPlayerFromCharacter(character)
if player then
print(player.Name .. " has sat down")
currentPlayer = player
return
end
end
if currentPlayer then
print(currentPlayer.Name .. " has got up")
currentPlayer = nil
end
end
seat:GetPropertyChangedSignal("Occupant"):Connect(onOccupantChanged)
Sommario
Proprietà
Indipendentemente dal fatto che il sedile sia o meno utilizzabile. Se impostato su true, il sedile funzionerà come una parte normale.
Il sedile che si trova seduto nella schiena.
Imposta la forma generale dell'oggetto.
Determina se una parte è immutabile fisicamente.
La velocità angolare dell'assemblaggio della parte.
Il centro di massa dell'assemblaggio della parte nel Spaziodel mondo.
La velocità lineare dell'assemblaggio della parte.
La massa totale dell'assemblaggio della parte.
Un riferimento alla parte root dell'assemblaggio.
Determina il tipo di superficie per la parte posteriore di una parte (+Z direzione).
Determina il tipo di superficie per la parte inferiore di un'auto (-Y direzione).
Determina il colore di una parte.
Determina la posizione e l'orientamento della BasePart nel Mondo.
Determina se una parte può collisionare con altre parti.
Determina se la parte è considerata durante le operazioni di query spaziale.
Determina se Touched e TouchEnded eventi si attivano sulla parte.
Determina se un part casta un'ombra o no.
Descrive la posizione mondiale in cui si trova il centro di massa di una parte.
Descrivi il nome di un Gruppodi collisione di una parte.
Determina il colore di una parte.
Indica le proprietà fisiche attuali della parte.
Determina diverse proprietà fisiche di una parte.
Utilizzato per abilitare o disabilitare le forze aerodinamiche su parti e assemblaggi.
La dimensione fisica reale della BasePart come vista dal motore fisico.
Determina il tipo di superficie per la parte anteriore di una parte (-Z direzione).
Determina il tipo di superficie per la parte sinistra di un'auto (-X direzione).
Determina un moltiplicatore per BasePart.Transparency che è visibile solo al client locale.
Determina se una parte è selezionabile in Studio.
Descrive la massa della parte, il prodotto della sua densità e volume.
Determina se la parte contribuisce alla massa totale o all'inertia del suo corpo rigido.
Determina le proprietà fisiche predefinite e la texture di una parte.
Il nome di MaterialVariant .
Descrive la rotazione della parte nel Mondo.
Specifica l'Offset del pivot della parte dal suo CFrame .
Descrive la posizione della parte nel Mondo.
Tempo dal prossimo aggiornamento Aggiornarmento.
Determina quanto una parte rifletta la skybox.
Descrive la piccola modifica ammessa dalla metodo Ridimensiona .
Descrive le facce su cui una parte può essere ridimensionata.
Determina il tipo di superficie per il lato destro di una parte (+X direzione).
La regola principale per determinare la parte della radice di un'assemblaggio.
La rotazione della parte in gradi per i tre assi.
Determina le dimensioni di una parte (Lunghezza, larghezza, altezza).
Determina il tipo di superficie per la parte superiore di un'auto (+Y direzione).
Determina quanto una parte può essere vista attraverso (l'inversario dell'opacità della parte).
Metodi
Forza il personaggio con il Humanoid specificato a sedersi nel sedile.
Applica un impulso angolare all'assemblaggio.
Applica un impulso all'assemblaggio al centro di massa dell'assemblaggio.
Applica un impulso all'assemblaggio nella posizione specificata.
Restituisce se le parti possono collidere tra loro.
Controlla se puoi impostare la proprietà di rete di una parte.
Restituisce una tabella di parti connesse all'oggetto da qualsiasi tipo di Articolazionerigida.
Restituisci tutti i Giunti o Constritti che sono connessi a questa parte.
Restituisce il valore della ProprietàMass .
Restituisce il giocatore corrente che è il proprietario di rete di questa parte, o nulla in caso di Server.
Restituisce vero se il motore di gioco decide automaticamente il proprietario della rete per questa parte.
Restituisce la parte di base di un'assemblazione di parti.
Restituisce una tabella di tutte le parti BasePart.CanCollide vere che interseccano con questa parte.
Restituisce la velocità lineare dell'assemblaggio della parte al posizione specificata rispetto a questa parte.
Restituisce vero se l'oggetto è connesso a una parte che lo contiene (ad esempio, una parte Anchored )), altrimenti restituisce false.
Cambia la dimensione di un oggetto proprio come si fa con lo strumento di ridimensionamento Studio.
Imposta il giocatore attuale come proprietario di rete per questo e tutte le parti connesse.
Lets il motore di gioco decidere dinamicamente chi si occuperà della fisica della parte (uno dei client o il Server).
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nuova IntersectOperation dalla geometria sovrappositiva della parte e dalle altre parti nell'vettorefornito.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nuova UnionOperation dalla parte, meno la geometria occupata dalle parti nell'vettorefornito.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nuova UnionOperation dalla parte, oltre alla geometria occupata dalle parti nell'vettorefornito.
Ottiene il pivot di un PVInstance .
Transforms the PVInstance along with all of its descendant PVInstances such that the pivot is now located at the specified CFrame .
Eventi
Eventi provenienti da BasePartSi attiva quando una parte smette di toccare un'altra parte come risultato di un movimento fisico.
Si attiva quando una parte tocca un'altra parte come risultato di un movimento fisico.