Stap 8: Geweren en kogels
Pistool
Laten we proberen dit pistool:
https://www.assetstore.unity3d.com/#/content/10332
Sleep in Prefab DartGun van gecomprimeerde Gas pistool > Prefab > DartGun naar de scène.
Een prefab is als een klasse maar in 'object' vorm. Het is de kopie met goede standaardinstellingen die u voor al uw verschillende niveaus gebruiken kunt.
Zet DartGun in speler > hoofdcamera
Positie/draaien DartGun (speler > hoofdcamera > DartGun) volgens de onderstaande waarden:
Positie/draaien innerlijke DartGun (speler > hoofdcamera > DartGun > DartGun) volgens de onderstaande waarden:
Laten we maken en sommige kogels schieten!
Bol maken door naar GameObject te gaan > maken andere > bol
De naam van het object op opsommingsteken wijzigen
Een nieuwe RigidBody aan het opsommingsteken object toevoegen.
Klik op Component toevoegen > Natuurkunde > RigidBody
Uncheck gebruik zwaartekracht
Set botsingdetectie tot voortdurend
Stel de schaal van het gebied van transformatie aan 0,2 0,2, 0.2
Laten we het maken van een nieuwe javascript-Script genaamd "Bullet."
/ / De snelheid het opsommingsteken wordt verplaatst
varSpeed:float =. 4;Het aantal seconden voordat de kogel wordt automatisch vernietigd
varSecondsUntilDestroy:float = 10;privatevarstartTime:float;
functionStart() {}
startTime=Time.time;
}functionFixedUpdate() {}
Vooruit
this.gameObject.transform.position += Speed*this.gameObject.transform.forward;
Als de kogel al zo lang als SecondsUntilDestroy, vernietigen
Als (Time.time-startTime > = SecondsUntilDestroy) {}
Destroy(this.gameObject);
}
}
functionOnCollisionEnter(collision:Collision) {}
De kogel te verwijderen uit de wereld
Destroy(this.gameObject);
}
Slepen en neerzetten van het opsommingsteken script van het projectvenster (activa > Scripts) op het kogel-Object in het venster van de hiërarchie.
Tot slot laten we maken het opsommingsteken in een prefab en verwijder deze uit de scène.
Maken van een prefab van de kogel door de kogel-object te slepen in het venster Project aan de activa > Prefabs in het venster van de hiërarchie.
Laten we het maken van een nieuwe javascript-Script genaamd "Gun."
/ / Dit is de kogel prefab de wil exemplaren worden gemaakt wanneer de speler klikt
Het moet worden ingesteld op een object in de editor
varBullet:GameObject;Brand een kogel
functionFire() {}
Maak een nieuw opsommingsteken wijzen in dezelfde richting als het pistool
varnewBullet:GameObject=Instantiate(Bullet,transform.position,transform.rotation);
}functionUpdate() {}
Brand als de linker muisknop wordt geklikt
if(input.GetButtonDown("Fire1")) {}
Fire();
}
}
Slepen en neerzetten van de Gun-script van het projectvenster (activa > Scripts) op het pistool-Object in het venster van de hiërarchie.
Slepen en neerzetten het opsommingsteken Prefab in het pistool script waar het zegt "None (het doel van het spel)."
Vergeet niet om altijd wijzigingen toepassen op de prefab door te gaan naar de scène object > inspector-Venster > prefab > toepassen.
Laten we ervoor zorgen dat de speler niet krijgen schot!
Lagen > lagen bewerken
Maak opsommingstekens laag
Maak speler laag
Selecteer het opsommingsteken-object en een laag ingesteld op opsommingsteken.
Selecteer de speler en de speler laag instelt.
Ja zeggen tegen het wijzigen van de kinderen.
Bewerken > Projectinstellingen > Natuurkunde
Uncheck kogel/speler en kogel/kogel