Scripti Göster
var Menzil : float = 1000;
var Kuvvet : float = 1000;
var Sarjor : int = 90;
var SarjorMermi : int = 30;
var YenilemeZamani : float = 2;
var KalanMermi : int = 0;
var AtesZamani : float = 0;
var AtesSiralama : float = 0.1;
public var atesSesi : AudioClip;
public var yenilemeSesi : AudioClip;
function Start () {
KalanMermi = SarjorMermi;
Screen.showCursor = false;
Screen.lockCursor = true;
}
function Update () {
if(AtesZamani > 0) {
AtesZamani -= Time.deltaTime;
}
if(AtesZamani < 0) { AtesZamani = 0; } if(Input.GetMouseButton(0) && KalanMermi) { if(AtesZamani == 0) { AtesSesiniOynat(); RayShoot () ; AtesZamani = AtesSiralama; } } } function RayShoot () { GameObject.Find("ak47ModelPikselcanavari").animation.Play("ak47atesanim0"); var Vur : RaycastHit; var DirectionRay = transform.TransformDirection(Vector3.forward); Debug.DrawRay(transform.position, DirectionRay * Menzil , Color.red); if(Physics.Raycast(transform.position, DirectionRay, Vur, Menzil)) { if(Vur.rigidbody) { Vur.rigidbody.AddForceAtPosition(DirectionRay * Kuvvet, Vur.point); } } KalanMermi --; if(KalanMermi < 0) { KalanMermi = 0; } if(KalanMermi == 0) { Yenile () ; YenilemeSesiniOynat(); } } function Yenile () { yield WaitForSeconds (YenilemeZamani); Sarjor -= SarjorMermi; KalanMermi = SarjorMermi; } function AtesSesiniOynat () { audio.PlayOneShot(atesSesi); } function YenilemeSesiniOynat () { audio.PlayOneShot(yenilemeSesi); }
Ne kazanırım?
Ateş etme yöntemlerinden biri olan RayCast ile ateş etme tekniğini anlıyabilirsiniz.
Nasıl Yaparım?
Silahınızın namlu kısmına,bir cube ekliyelim ve cubeyi küçültelim(görünmeyecek kadar)sonra cubenin meshini silerek ismini RayPoint olara değiştirelim,scriptimizi RayPointe yerleştirelim,oyun esnasında değil fakat,editörden baktığımızda silahın ucundan kırmızı bir lazer çıkmaktadır,herhangi bir cube koyup,rigidbody eklerseniz,ve kübe doğru ateş ederseniz,1000 kuvvetinde itecektir yani cube yerinden hareket edicektir.
Eyw Kardeş.
YanıtlaSildediklerini yaptım ama olmadı :S
YanıtlaSilŞimdi bu kodu ben baska bi yerden de bulup uyguladım. Benim senaryom. Karşıya hedef tahtaları koyup tek tek yok etmek bu yöntem ile. 1. nesneyi başarılı bir şekilde yok edebiliyorum fakat 2 nesneye yapınca yeni bir değişken belirtip ona tanımlamama rağmen biri yok oldugunda digeride yok oluyor. OnCollisionEnter da böyle bi sorun yok else if ile sıra sıra hallediyosun ama bn bu kodun üzerinden yapmak istiyorum cünkü cephane sistemi fln oturmus durumda yardımcı olursanız sevinirim. araxlea @ htmail com mailde atablrsnz
YanıtlaSilyha bnm oyunu başlatıom ateş etcem durduruluyo
YanıtlaSil