Intro till enhet (8 / 14 steg)
Steg 8: Kanoner och kulor
Gun
Låt oss prova denna pistol:
https://www.assetstore.Unity3D.com/#/content/10332
Dra i DartGun Prefab från komprimerad Gas Pistol > Prefab > DartGun till platsen.
Ett prefab är som en klass men i 'object' form. Det är en kopia med bra standard som du kan använda för alla dina olika nivåer.
Sätta DartGun i Player > huvudkameran
Position/rotera DartGun (Player > Main kamera > DartGun) värden nedan:
Position/rotera inre DartGun (Player > Main kamera > DartGun > DartGun) värden nedan:
Låt oss skapa och skjuta några kulor!
Skapa sfären genom att gå till GameObject > skapa andra > sfär
Byta namn på objektet till Bullet
Lägg till en ny RigidBody i kula objektet.
Klicka på Lägg till komponent > fysik > RigidBody
Avmarkera Använd allvar
Ställ in kollision upptäckt att kontinuerlig
Ange omfattningen av det området transformering till 0,2, 0,2 0,2
Låt oss skapa en ny javascript skript som heter "Bullet."
/ / Hastighet kulan rör sig
varSpeed:float =. 4;Antalet sekunder innan kulan förstörs automatiskt
varSecondsUntilDestroy:float = 10;privatevarstartTime:float;
functionStart() {
startTime=Time.time;
}functionFixedUpdate() {
Gå framåt
this.gameObject.transform.position += Speed*this.gameObject.transform.forward;Om kulan har funnits så länge som SecondsUntilDestroy, förstöra den
om (Time.time-startTime > = SecondsUntilDestroy) {
Destroy(this.gameObject);
}
}functionOnCollisionEnter(collision:Collision) {
Ta bort kulan från världen
Destroy(this.gameObject);
}
Dra och släpp kulan skriptet från Project-fönstret (tillgångar > skript) till objektet kula i fönstret hierarki.
Slutligen, låt oss göra kula till ett prefab och ta bort den från scenen.
Skapa ett prefab kula genom att dra objektet kula i Project-fönstret till tillgångar > prefabricerade i fönstret hierarki.
Låt oss skapa en ny javascript skript som heter "Gun."
/ / Detta är bullet prefab som ska instansieras när spelaren klickar
Det måste anges till ett objekt i redigeraren
varBullet:GameObject;Brand en kula
functionFire() {
Skapa en ny kula pekar i samma riktning som pistolen
varnewBullet:GameObject=Instantiate(Bullet,transform.position,transform.rotation);
}functionUpdate() {
Eld om vänster musknapp klickas
IF(input.GetButtonDown("Fire1")) {
Fire();
}
}
Dra och släpp vapnet skriptet från Project-fönstret (tillgångar > skript) till Gun objektet i fönstret hierarki.
Dra och släpp kulan Prefab i skriptet pistol där det står "Ingen (spelet objekt)."
Kom ihåg att alltid tillämpa ändringarna på prefab genom att gå till objektet scen > kontrollantfönstret > prefab > tillämpa.
Låt oss se till att spelaren inte bli skjuten!
Lager > Redigera lager
Skapa punkt lager
Skapa spelare lager
Välj objektet kula och ange sitt lager till kula.
Välj spelaren och att spelaren lager.
Säger ja till ändra barnen.
Redigera > Projektinställningar > fysik
Uncheck kula/spelare och kula/kula