Kit armi

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

Per assistere nella creazione di esperienze competitive basate sul combattimento, sono disponibili diverse armi approvate per l'uso in qualsiasi esperienza. Il sistema principale presenta armi basate su proiettili con una telecamera sopra la spalla e impostando la velocità del proiettile sufficientemente alta è possibile simulare armi raycasting come le pistole laser.

Per utilizzare un'arma approvata nella tua esperienza:

  1. Seleziona un'arma qui sotto, navigando al link della libreria degli asset.
Pistola
Fucile a pompa
Fucile Automatico
Mitraletta
Fucile di precisione
Arco
Lanciagranate
Lanci missili
Railgun
  1. Nella pagina dell'oggetto dell'arma, fai clic sul pulsante verde Ottieni e conferma la transazione.

  2. In Studio, apri il Toolbox.

  3. Seleziona la sezione Inventario del tuo toolbox.

  4. Individua l'arma e fai clic su di essa per aggiungerla nel posto. Quando viene chiesto se inserire lo strumento nel pack iniziale, fai clic su se desideri che i giocatori inizino con l'arma nel loro zaino, oppure fai clic su No per semplicemente collocare l'arma nel mondo 3D come pickup.

  5. Se questa è la prima volta che porti dentro un'arma approvata, sposta la sua cartella WeaponsSystem in ServerScriptService per fungere da cartella unificata sistema per tutte le armi approvate nell'esperienza.

Struttura della cartella di sistema

La cartella WeaponsSystem è una cartella unificata che contiene asset, configurazioni e script che alimentano tutte le armi approvate nell'esperienza. Se collocata in ServerScriptService, sovrascrive eventuali cartelle WeaponsSystem equivalenti che potrebbero risiedere all'interno delle singole armi.

La cartella WeaponsSystem contiene le seguenti istanze:

All'interno della cartella WeaponsSystem, diversi aspetti sono controllati dai seguenti ModuleScripts:

AspettoGestito principalmente all'interno di...
Funzionalità delle armi
  • Libraries/BaseWeapon
  • WeaponTypes/BulletWeapon
  • WeaponTypes/BowWeapon
Telecamera sopra la spalla
  • Libraries/ShoulderCamera
GUI dell'arma
  • Libraries/WeaponsGui
  • Libraries/DirectionalIndicatorGuiManager
  • Libraries/DamageBillboardHandler

Struttura dell'arma

Le armi approvate sono Tools e sono nominate come appariranno nello zaino del giocatore. Ogni arma è strutturata con una gerarchia simile.

Tipo di arma

Il WeaponType StringValue corrisponde al ModuleScript per l'arma nella cartella WeaponsSystem/WeaponTypes. I due valori base sono BulletWeapon e BowWeapon.

Modello dell'arma

Ogni arma contiene un Model composto da uno o più BaseParts per formare l'arma fisica. Uno di questi dovrebbe essere impostato come PrimaryPart del modello.

Il modello include anche i seguenti discendenti importanti che possono essere genitori di uno dei BaseParts del modello:

  • TipAttachmentAttachment la cui posizione sul BasePart padre determina dove escono i proiettili/proiettili.
  • HandleAttachmentAttachment la cui posizione sul BasePart padre determina dove è saldata la Maniglia.
  • Fired
    opzionale
    Sound che viene riprodotto quando l'arma viene sparata.
  • Reload
    opzionale
    Sound che viene riprodotto quando l'arma viene ricaricata.
  • Discendenti aggiuntivi per eventuali opzioni specializzate.

Maniglia dell'arma

La parte Handle determina dove un personaggio del giocatore tiene l'arma. Questo deve essere un Part, deve essere nominato Handle e deve essere un figlio diretto dell'arma (strumento).

Cartella di configurazione

La cartella Configuration contiene tipi di "valore" specifici per il comportamento dell'arma. Oltre ai valori predefiniti, puoi aggiungere ulteriori elementi di configurazione per opzioni specializzate quando applicabile.

Di seguito sono riportate le configurazioni di base e i loro valori predefiniti:

ElementoDescrizionePredefinito
AmmoCapacityNumero di colpi in ciascun "caricatore" prima che il giocatore debba ricaricare. Nota che le munizioni sono illimitate e questo non specifica quante munizioni un giocatore sta trasportando.30
FireModeScelta tra Semiautomatico (un colpo per clic/tocco), Automatico (tiro continuo) o Burst (raffica di colpi pari a NumBurstShots a ogni clic/tocco).Semiautomatico
ShotCooldownTempo minimo di attesa tra i clic. Per le armi con FireMode di Automatico, questo è anche il tempo tra i colpi mentre si preme il pulsante di fuoco o si tiene premuto il clic.0.1
BurstShotCooldownTempo tra ogni colpo in una raffica; importanza solo se imposti FireMode su Burst.Valore di ShotCooldown
NumBurstShotsNumero di colpi per clic/raffica; importanza solo se imposti FireMode su Burst.3
HitDamageQuantità di danno che ogni colpo diretto infligge.10
FullDamageDistanceDistanza massima alla quale i colpi infliggono pieno danno. Qualsiasi cosa colpita oltre questa distanza riceverà sempre meno danni man mano che la distanza si avvicina a ZeroDamageDistance.1000
ZeroDamageDistanceQualsiasi cosa colpita a questa distanza o oltre non subirà danni.10000
BulletSpeedVelocità con cui i proiettili/proiettili viaggiano quando vengono sparati. Impostare questo a un valore molto alto come 20000 simula armi raycasting come le pistole laser.1000
MaxDistanceDistanza massima che i proiettili/proiettili possono viaggiare prima di scomparire.2000
MinSpreadMinima quantità di dispersione per l'arma.0
MaxSpreadMassima quantità di dispersione per l'arma.Valore di MinSpread
GravityFactorQuantità con cui la gravità dovrebbe influenzare ogni proiettile/proiettile. Ad esempio, questo valore per Arco è 1 perché le frecce si arcuano durante il volo, ma questo valore per Lanci missili è 0 perché i razzi spinti viaggiano dritti.0
HasScopeImposta su true se desideri utilizzare il mirino specificato nel GUI del sistema armi.false
ReloadAnimationNome dell'animazione di ricarica nella cartella Assets/Animations della cartella di sistema.RifleReload
AimTrackNome dell'animazione di mira nella cartella Assets/Animations della cartella di sistema.RifleAim
AimZoomTrackNome dell'animazione di zoom della mira nella cartella Assets/Animations della cartella di sistema.RifleAimDownSights
RecoilMinRecoil minimo aggiunto per ogni colpo.0.05
RecoilMaxRecoil massimo aggiunto per ogni colpo.0.5
TotalRecoilMaxMassimo recoil accumulato totale. Il recoil attuale dell'arma non supererà mai questo valore.2
RecoilDecayMoltiplicatore di decadimento per il recoil; essenzialmente il tasso al quale il recoil diminuisce dopo lo sparo.0.825
RecoilDelayTimeTempo di attesa dopo lo sparo/clic prima che il recoil venga aggiunto alla telecamera.0.07
StartupTimeDurata del tempo dopo aver equipaggiato l'arma prima che il giocatore possa sparare. Questo impedisce ai giocatori di sparare un solo colpo da diverse armi in rapida successione.0.2
FiredPlaybackSpeedRangeQuantità con cui il pitch può variare per il suono Fired dell'arma. Imposta questo a 0 per riprodurlo sempre allo stesso pitch.0.1
NumProjectilesNumero di proiettili che verranno sparati contemporaneamente quando fai clic/tocchi una volta. Questo è utile per armi come il Fucile a pompa che spara più proiettili contemporaneamente. Nota che un colpo utilizzerà sempre esattamente una munizione indipendentemente da questo valore.1

Opzioni specializzate

Puoi aggiungere/modificare le seguenti opzioni per qualsiasi arma. Queste personalizzazioni richiedono di modificare il Model dell'arma, la Configuration dell'arma, o entrambi. Alcune configurazioni dipendono da altre, come le Particelle della bocca che richiedono i discendenti necessari per Effetti e suoni dei proiettili/impatto.

Animazioni e suoni delle chiavette

La chiavetta di un'arma è la parte che si muove avanti e indietro ogni volta che viene sparata.

BoltBasePart che si muove quando l'arma viene sparata.
BoltMotorMotor6D utilizzato per animare la chiavetta. Assicurati di impostare il Part0 del motore sul PrimaryPart del modello dell'arma e il Part1 sulla parte Bolt.
BoltMotorStartAttachment la cui posizione sul BasePart padre determina dove si trova la chiavetta quando è a riposo.
BoltMotorTargetAttachment la cui posizione sul BasePart padre determina dove si anima la chiavetta durante lo sparo.
BoltOpenSoundSound che viene riprodotto quando la chiavetta si apre.
opzionale
BoltCloseSoundSound che viene riprodotto quando la chiavetta si chiude.
opzionale
ElementoDescrizionePredefinito
ActionOpenTimeTempo necessario perché la chiavetta si animasse nella posizione di apertura.0.025
ActionCloseTimeTempo necessario perché la chiavetta si animasse nella posizione di chiusura.0.075

Eiettare gusci di proiettili

Le armi possono includere gusci di proiettili fisici che si eiettano al momento dello sparo e cadono a terra.

CasingEjectPointAttachment la cui posizione sul BasePart padre determina dove desideri far uscire i gusci di proiettile. Nota che la sua orientazione determina la direzione in cui i gusci escono.
ElementoDescrizionePredefinito
CasingEffectNome della parte BasePart di guscio in Assets/Effects/Casings della cartella di sistema.
CasingEjectSpeedMinVelocità di eiezione minima dei gusci15
CasingEjectSpeedMaxVelocità di eiezione massima dei gusci18
CasingHitSoundSound che viene riprodotto quando i gusci colpiscono il suolo.
opzionale

Effetti e suoni dei proiettili/impatto

Puoi configurare proiettili fisici per qualsiasi arma, insieme a Sounds, Beams e ParticleEmitters per effetti di impatto e altri effetti speciali.

ElementoDescrizionePredefinito
ShotEffectNome di un effetto di colpo memorizzato in Assets/Effects/Shots della cartella di sistema.
ShouldMovePartImposta su true se l'ShotEffect dell'arma dovrebbe muoversi con il proiettile o false se non lo fa. Dovresti impostarlo su true solo se c'è un oggetto visibile che si muove con ogni colpo, come una freccia o un razzo.false
BeamFadeTimeTempo necessario per Beam0 o Beam1 (vedi sotto) per svanire dopo che il proiettile/proiettile colpisce qualcosa. Di default, non verrà applicato alcun decadimento manuale tramite codice.0
BeamWidth0Spessore di Beam0 o Beam1 a Attachment0 (vedi sotto).1.5
BeamWidth1Spessore di Beam0 o Beam1 a Attachment1 (vedi sotto).1.8
NumHitParticlesNumero di particelle che l'emettitore di HitParticles (vedi sotto) emetterà.3
HitParticlesUsePartColorImposta su true se desideri che le particelle di colpo siano del colore della superficie colpita; false se desideri che le particelle di colpo non cambino colore.true

Discendenti di ShotEffect

Discendenti dell'ShotEffect specificato nella sezione precedente

FlyingSound che viene riprodotto mentre il proiettile/proiettile sta viaggiando.
opzionale
Beam0Primo slot per un Beam che segue il proiettile/proiettile. Non dimenticare di impostare Attachment0 e Attachment1.
opzionale
Beam1Secondo slot per un Beam che segue il proiettile/proiettile. Non dimenticare di impostare Attachment0 e Attachment1.
opzionale
Attachment0Attachment la cui posizione sul BasePart padre determina la parte posteriore dei fasci di trazione; assicurati di impostare Beam.Attachment0 su Beam0 e Beam1.
opzionale
Attachment1Attachment la cui posizione sul BasePart padre determina la parte anteriore dei fasci di trazione; assicurati di impostare Beam.Attachment1 su Beam0 e Beam1.
opzionale
TrailParticlesParticleEmitter genitori come figlio diretto di Attachment0; questo emetterà mentre il proiettile/proiettile sta viaggiando.
opzionale
LeadingParticlesParticleEmitter genitori come figlio diretto di Attachment1; questo emetterà mentre il proiettile/proiettile sta viaggiando.
opzionale
HitEffectAttachment la cui posizione sarà impostata su Beam.Attachment1 di Beam0 quando il proiettile/proiettile colpisce. Devi specificare Beam0 e le sue attacchi affinché questo funzioni correttamente.
opzionale
HitSoundSound genitori come figlio diretto di HitEffect; riproduce quando il proiettile/proiettile colpisce.
opzionale
HitParticlesSound genitori come figlio diretto di HitEffect; emette quando il proiettile/proiettile colpisce.
opzionale
[ProjectilePart]Qualsiasi Part o MeshPart che desideri apparire come un proiettile fisico. Assicurati di impostare ShouldMovePart annotato nella sezione precedente su true se hai un oggetto visibile qui.
opzionale

Particelle della bocca

Questa opzione emette particelle dall'emettitore di particelle specificato dall'Attachment della TipAttachment quando viene sparata l'arma.

Discendenti della configurazione:

  • ShotEffect (StringValue) — Nome di un effetto di colpo memorizzato in WeaponsSystem/Assets/Effects/Shots.
  • NumMuzzleParticles (IntValue) (opzionale) — Numero di particelle della bocca che verranno emesse; il predefinito è 50.

Per l'effetto di colpo specificato, aggiungi un asset ParticleEmitter all'interno di WeaponsSystem/Assets/Effects/Shots nominato MuzzleParticles.

Lampi della bocca

Questa opzione crea un effetto di flash Beam quando l'arma viene sparata.

Discendenti del modello:

  • MuzzleFlash0 (Attachment) — Utilizzato per specificare un lato del flash della bocca. La posizione non ha importanza.
  • MuzzleFlash1 (Attachment) — Utilizzato per specificare il lato opposto del flash della bocca. La posizione non ha importanza.
  • MuzzleFlash (Beam) — Assicurati di impostare Attachment0 su MuzzleFlash0 e Attachment1 su MuzzleFlash1.

Discendenti della configurazione:

  • MuzzleFlashTime (NumberValue) (opzionale) — Durata del flash della bocca; il predefinito è 0.03.
  • MuzzleFlashRotation0 (NumberValue) (opzionale) — Rotazione minima del flash della bocca; il predefinito è -math.pi.
  • MuzzleFlashRotation1 (NumberValue) (opzionale) — Rotazione massima del flash della bocca; il predefinito è math.pi.
  • MuzzleFlashSize0 (NumberValue) (opzionale) — Dimensione minima del flash della bocca; il predefinito è 1.
  • MuzzleFlashSize1 (NumberValue) (opzionale) — Dimensione massima del flash della bocca; il predefinito è 1.

Sentieri di particelle

Questa opzione crea un sentiero di lunghezza variabile dall'arma al punto di impatto del proiettile.

Discendenti della configurazione:

  • TrailLength (NumberValue) (opzionale) — Lunghezza del sentiero dietro al proiettile; il predefinito è nil, il che significa che la lunghezza del sentiero verrà calcolata utilizzando TrailLengthFactor.
  • TrailLengthFactor (NumberValue) (opzionale) — La lunghezza del sentiero sarà impostata su questo valore moltiplicato per la distanza percorsa dal proiettile nella scorsa cornice; il predefinito è 1. Nota che questo verrà sovrascritto se includi TrailLength.
  • ShowEntireTrailUntilHit (BoolValue) (opzionale) — Imposta su true per rendere visibile il sentiero dalla punta dell'arma fino a dove si trova il proiettile; questo sovrascriverà sia TrailLength che TrailLengthFactor, e il sentiero scomparirà solo una volta che il proiettile colpisce qualcosa. Imposta su false per utilizzare una delle due opzioni sopra per calcolare la lunghezza del sentiero. Il predefinito è false.

Segni di colpo

Questa aggiunta visiva appare sulla superficie dove i proiettili colpiscono e è utile per frecce, fori di proiettile, segni di bruciore, ecc.

Discendenti della configurazione:

  • HitMarkEffect (StringValue) (opzionale) — Nome dell'effetto di segno di colpo memorizzato in WeaponsSystem/Assets/Effects/HitMarks; il predefinito è BulletHole.
  • AlignHitMarkToNormal (BoolValue) (opzionale) — Imposta su true se il segno di colpo dovrebbe sempre allinearsi piatto contro la superficie come un foro di proiettile, o false se il segno di colpo dovrebbe apparire conficcato nella superficie dalla direzione da cui è arrivato il proiettile (come una freccia). Il predefinito è true.

Puoi aggiungere il seguente asset opzionale all'interno di WeaponsSystem/Assets/Effects/HitMarks:

  • Glow (Decal) (opzionale) — Appare sulla superficie colpita completamente opaca, poi rapidamente diventa più trasparente, come un effetto luminoso sulla superficie che svanisce rapidamente. Utile per mostrare un segno rosso luminoso dove sono esplosi gli esplosivi.
  • BulletHole (Decal) (opzionale) — Appare sulla superficie colpita completamente opaca e, dopo 4 secondi, svanisce in trasparente in 1 secondo.
  • ImpactBillboard (BillboardGui) (opzionale) — Visualizza sulla superficie colpita, sempre rivolto verso la telecamera.
    • Impact (ImageLabel) (opzionale) — Figlio diretto di ImpactBillboard; inizia completamente opaco, cresce fino alla dimensione completa di ImpactBillboard in 0.1 secondi, poi si riduce alla metà della sua dimensione e svanisce fino alla trasparenza completa in 0.1 secondi.
  • Qualsiasi Part/MeshPart/SpecialMesh che desideri apparire come un proiettile fisico (opzionale). Ad esempio, includendo un MeshPart per una freccia e impostando AlignHitMarkToNormal notato sopra su false farà sì che la freccia sporga dalla superficie nella direzione dalla quale è stata sparata.

Proiettili esplosivi

I proiettili possono includere un oggetto Explosione per danneggiare i personaggi giocatore in un'area intorno al punto di impatto.

Discendenti della configurazione:

  • ExplodeOnImpact (BoolValue) (opzionale) — Imposta su true se desideri che i proiettili dell'arma esplodano all'impatto, false altrimenti. Il predefinito è false.
  • BlastRadius (NumberValue) (opzionale) — Raggio d'esplosione dell'esplosione; il predefinito è 8.
  • BlastPressure (NumberValue) (opzionale) — Pressione di esplosione dell'esplosione; il predefinito è 10000.
  • BlastDamage (NumberValue) (opzionale) — Danno inflitto a cose nel centro dell'esplosione. Nota che l'esplosione infligge meno danni man mano che gli oggetti colpiti si allontanano dal centro dell'esplosione. Il predefinito è 100.

Arma di carica

Un'arma di carica come il Railgun deve essere caricata tra i colpi prima di poter sparare di nuovo.

Discendenti del modello:

  • Charging (Sound) (opzionale) — Viene riprodotto mentre l'arma si sta caricando.
  • Discharging (Sound) (opzionale) — Viene riprodotto mentre l'arma si sta scaricando, ad esempio se carichi parzialmente l'arma e rilasci il pulsante di sparo.
  • ChargeComplete (Sound) (opzionale) — Viene riprodotto quando l'arma ha raggiunto la carica completa.
  • DischargeComplete (Sound) (opzionale) — Viene riprodotto quando l'arma è stata completamente scaricata.
  • ChargeGlow (BasePart) (opzionale) — Questo oggetto diventerà meno trasparente man mano che l'arma si carica, in modo che sia completamente opaco al 100% di carica.
  • ChargeCompleteParticles (ParticleEmitter) (opzionale) — Emesso quando l'arma ha terminato la carica. Questo emettitore può essere un figlio di qualsiasi parte BasePart del modello o un figlio di un Attachment all'interno del BasePart.
  • DischargeCompleteParticles (ParticleEmitter) (opzionale) — Emesso quando l'arma è stata completamente scaricata. Questo emettitore può essere un figlio di qualsiasi parte BasePart del modello o un figlio di un Attachment all'interno del BasePart.
  • ChargingParticles (ParticleEmitter) (opzionale) — Emesso mentre l'arma si sta caricando. Puoi includere più emettitori di questo nome e ognuno emetterà durante la fase di carica. Questo emettitore può essere un figlio di qualsiasi parte BasePart del modello o un figlio di un Attachment all'interno del BasePart.

Discendenti della configurazione:

  • ChargeRate (NumberValue) — Tasso di caricamento dell'arma. Questo valore deve essere specificato per indicare che l'arma utilizza la carica.
  • DischargeRate (NumberValue) (opzionale) — Tasso al quale l'arma si scaricherà; il predefinito è 0, il che significa che l'arma non si scaricherà affatto.
  • ChargePassively (BoolValue) (opzionale) — Imposta su true se desideri che l'arma si carichi in modo passivo per sparare istantaneamente quando clicchi, o false se desideri cliccare/toccare per caricare l'arma e farla sparare una volta raggiunta la carica completa. Il predefinito è false.
  • ChargingParticlesRatePerCharge (IntValue) (opzionale) — Numero di particelle che emetteranno tutti i ChargingParticles emettitori moltiplicato per la carica attuale dell'arma. Il predefinito è 20, il che significa che se la carica dell'arma è al 10%, ciascun emettitore di ChargingParticles emetterà 2 particelle (20×0.1), e se la carica dell'arma è al 90%, ciascun emettitore emetterà 18 particelle (20×0.9).
  • FireDischarge (NumberValue) (opzionale) — Quantità di carica che l'arma perderà dopo aver sparato un colpo completamente carico; il predefinito è 1.
  • NumChargeCompleteParticles (IntValue) (opzionale) — Numero di particelle che l'emettitore di ChargeCompleteParticles emetterà una volta che l'arma è completamente carica. Il predefinito è 25.
  • NumDischargeCompleteParticles (IntValue) (opzionale) — Numero di particelle che l'emettitore di DischargeCompleteParticles emetterà quando l'arma è completamente scaricata. Il predefinito è 25.

Arma arco

Un'arma arco come l'Arco incrociato può includere una costruzione realistica di corda e braccia, così come una freccia visiva incoccata sulla corda.

Oltre ad aggiungere discendenti del modello, devi applicare i seguenti:

  • Trasforma l'arma in un' arma di carica. Ad esempio, aggiungi il necessario ChargeRate all'interno della Configuration dell'arma che specifica quanto velocemente viene tesa la corda. Inoltre, considera di aggiungere discendenti opzionali al modello dell'arma come un suono Charging per la corda/braccia tirate indietro.
  • Imposta il WeaponType su BowWeapon come indicato nella Struttura dell'arma.

Discendenti del modello:

  • LeftString (Beam) (opzionale) — La metà sinistra visiva della corda.
  • RightString (Beam) (opzionale) — La metà destra visiva della corda.
  • Arrow (BasePart) (opzionale) — La freccia che appare quando l'arco è completamente teso. Nota che questo è solo per l'aspetto visivo dell'arco (la freccia effettivamente sparata sarà un ShotEffect come delineato in Effetti di proiettile/impatto e suoni).
  • String1 (Attachment) (opzionale) — Il punto centrale della corda.
  • StringLoose (Attachment) (opzionale) — Punto in cui String1 dovrebbe trovarsi quando l'arco è a riposo.
  • StringTight (Attachment) (opzionale) — Punto in cui String1 dovrebbe trovarsi quando l'arco è completamente teso.
  • Arms (Part) (opzionale) — Una parte che funge solo da indicatore interno che le braccia dell'arco saranno animate. Questo può contenere i seguenti figli diretti:
  • LeftString0 (Attachment) (opzionale) — Punto in cui il lato sinistro della corda è attaccato all'arco.
  • RightString0 (Attachment) (opzionale) — Punto in cui il lato destro della corda è attaccato all'arco.
  • LeftLoose (Attachment) (opzionale) — Punto in cui LeftString0 dovrebbe trovarsi quando l'arco è a riposo.
  • RightLoose (Attachment) (opzionale) — Punto in cui RightString0 dovrebbe trovarsi quando l'arco è a riposo.
  • LeftTight (Attachment) (opzionale) — Punto in cui LeftString0 dovrebbe trovarsi quando l'arco è completamente teso.
  • RightTight (Attachment) (opzionale) — Punto in cui RightString0 dovrebbe trovarsi quando l'arco è completamente teso.
  • [SpecialMesh] (SpecialMesh) (opzionale) — La parte dell'arco che effettivamente si piega quando l'arco viene teso. Nota che devi specificare i seguenti quattro oggetti Vector3Value affinché questo si animati.
  • LooseOffset (Vector3Value) (opzionale) — Offset del SpecialMesh quando l'arco è a riposo.
  • TightOffset (Vector3Value) (opzionale) — Offset del SpecialMesh quando l'arco è completamente teso.
  • LooseScale (Vector3Value) (opzionale) — Scala del SpecialMesh quando l'arco è a riposo.
  • TightScale (Vector3Value) (opzionale) — Scala del SpecialMesh quando l'arco è completamente teso.

GUI del sistema armi

Il sistema armi principale interagisce con questo sistema per aggiornare la GUI in base a variabili come la dispersione dell'arma, indicatori per quando vieni colpito o colpisci altri, ecc.

Il WeaponsSystemGui è un oggetto ScreenGui in WeaponsSystem/Assets che è genitore di PlayerGui all'avvio dell'esperienza. WeaponSystemGui ha 4 discendenti:

Elementi scalabili

ScalingElements è una Folder genitore sotto WeaponsSystemGui con i seguenti discendenti:

NomeTipo di istanzaDescrizione
DirectionalIndicatorsFolderUna Folder in cui sono memorizzati tutti gli indicatori direzionali.
CrosshairFrameUna Frame contenente i seguenti oggetti:

[UIAspectRationConstraint] - UIAspectRatioConstraint
Bottom - ImageLabel
Left - ImageLabel
Right - ImageLabel
Top - ImageLabel
HitMarkerFrameUna Frame contenente i seguenti oggetti:

[UIAspectRatioConstraint] - UIAspectRatioConstraint
HitMarkerImage - ImageLabel che appare e svanisce quando il giocatore colpisce un altro personaggio giocatore.

LargeTouchscreen

LargeTouchscreen è un Frame contenente pulsanti che vengono visualizzati sugli schermi touch grandi. LargeTouchscreen ha i seguenti discendenti:

Scope

Scope è un Frame che contiene ScopeImage (ImageLabel) che appare quando si zooma su un'arma con HasScope abilitato (vedi Struttura dell'arma).

Scope ha i seguenti discendenti:

NomeTipo di istanzaDescrizione
ScopeInstanceFrameUna Frame contenente gli asset utilizzati quando si zooma su un'arma con HasScope abilitato:

[UIAspectRationConstraint] - UIAspectRatioConstraint
BottomBlack - Frame
LeftBlack - Frame
RightBlack - Frame
TopBlack - Frame

SmallTouchscreen

SmallTouchScreen è un Frame contenente pulsanti che vengono visualizzati sugli schermi touch piccoli. SmallTouchscreen ha i seguenti discendenti:

Creare un indicatore direzionale

Gli indicatori direzionali sono utilizzati per mostrare la direzione di qualcosa intorno al mirino del giocatore. Ad esempio, se qualcuno ti spara, un semicerchio rosso può apparire intorno al mirino nella direzione da cui proviene il colpo. Altri esempi includono indicatori per mostrare la direzione dei passi, il fuoco indiretto o anche oggetti ambientali come forzieri.

Per creare un nuovo indicatore, aggiungi un nuovo indicatore Frame in WeaponsSystemGui/ScalingElements/DirectionalIndicators con la seguente struttura:

NomeTipo di istanzaDescrizione
[UIAspectRationConstraint]UIAspectRatioConstraint
[ImageLabel]ImageLabelImmagine dell'indicatore direzionale. Potrebbe essere necessario modificare la rotazione dell'immagine in Studio a meno che tu non carichi l'immagine in modo che sia rivolta verso il basso e ci sia poco o nessuno spazio vuoto attorno.
Questa immagine label deve anche contenere il proprio
UIAspectRatioConstraint.
[Configuration]ConfigurationContiene proprietà opzionali da modificare. Vedi Configurazione dell'indicatore per ulteriori informazioni.

Una volta creato, puoi attivare un indicatore tramite il comando seguente all'interno di WeaponsSystem/Libraries/WeaponsGui dove indicatorName è il nome della stringa dell'indicatore da attivare e worldPos è la posizione del mondo a cui l'indicatore direzionale dovrebbe puntare:


self.DirectionalIndicatorGuiManager:ActivateDirectionalIndicator(indicatorName, worldPos)

Configurazione dell'indicatore

Gli indicatori direzionali possono essere ulteriormente modificati regolando l'oggetto Configuration genitore sotto il [Indicatore]. Tutte queste impostazioni hanno un valore predefinito, quindi non è necessario impostare configurazioni quando non si modifica un'impostazione.

Le seguenti configurazioni possono essere impostate:

NomeTipo di istanzaDescrizione
DistanceLevelFromCenterNumberValueNumero di livelli di distanza dal centro dello schermo (ogni livello di distanza è di circa 0.03 scala dello schermo); il predefinito è 6.
FadeTimeNumberValueTempo di svanimento dell'indicatore dopo la sua attivazione e il tempo di TimeBeforeFade; il predefinito è 1.
NameStringValueNome dell'indicatore direzionale come desideri riferirlo nel codice; il predefinito è il nome del Frame di livello superiore dell'indicatore.
TimeBeforeFadeNumberValueNumero di secondi in cui l'indicatore apparirà prima di svanire; il predefinito è 1.
TransparencyBeforeFadeNumberValueTrasparenza dell'indicatore prima che inizi a svanire; il predefinito è 0.
WidthLevelNumberValueNumero di livelli di larghezza dal centro (ogni livello di larghezza è di circa 0.03 scala dello schermo); il predefinito è il valore di DistanceLevelFromCenter.

Mostra cartellone danni

Il cartellone danni viene utilizzato per mostrare piccoli numeri sopra la testa di un personaggio quando subiscono danni. Questi verranno mostrati solo per il giocatore che ha danneggiato il personaggio di un altro giocatore, non per i giocatori spettatori.

I cartelloni danni sono gestiti in WeaponsSystem/Libraries/DamageBillboardHandler e possono essere attivati da qualsiasi codice lato client come segue, dove il danno è l'ammontare di danno inflitto e adornmentPart è la parte su cui decorare il cartellone, come la testa della vittima:


DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)

Telecamera sopra la spalla

La telecamera sopra la spalla è una telecamera in terza persona che guarda sopra la spalla destra del personaggio del giocatore. Per personalizzare la telecamera sopra la spalla, modifica le variabili sotto il commento -- Parametri di configurazione (costanti) nella funzione ShoulderCamera.new() di WeaponsSystem/Libraries/ShoulderCamera. Puoi modificare cose come il campo visivo, lo spostamento dal personaggio, la velocità di camminata durante lo sprint o lo zoom, ecc.

Controllo sprint e zoom

Per impostazione predefinita, il sistema delle armi aggiunge la capacità di "sprint", quindi i giocatori possono sprintare tenendo premuto il tasto Shift, premendo completamente il joystick dinamico (mobile), o premendo completamente il joystick sinistro (gamepad). Se desideri disabilitare lo sprint, imposta il valore di SprintEnabled all'interno di WeaponsSystem/Configuration su false.

Il sistema riduce anche la velocità del giocatore mentre sta mirando/zoomando, ma puoi disabilitare questo comportamento impostando il valore di SlowZoomWalkEnabled su false.

© 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.