Onlar ilerideki konu, şimdilik size Dusmana hasar vermeyi, dusmanın sizi takip etmesini öğreteceğim.
İlk olarak şunu bilin ki kesinlikle dediklerimin dışında başka cümleler kullanmayın kod çalışmaz.
Yapılacaklar=
1-"Dusman" ve "Ates" adında iki adet ayarı c# kodu yaratın.
2-Daha sonra Bir "Capsule" objesi yaratın.
3-"Dusman" scriptini Capsule atınız.
4-Capsule Insceptorın yukarısından "Tag" bölümünden Add tag ekleyin.
5-Buradaki boş kutucuğa "Dusman" yazın ve enter tuşuna basıp, Hieracy menüsünden Capsule obesjini seçin, şimdi Tag bölümüne tekrar basıp, alt alta sıralanmış olarak seçenekler var siz oradan az önce eklediğimiz "Dusman" tagını seçin.
Şimdi Script bölümüne gekdik.
1-Dusman scriptini açınız ve aynen şunu yazınız(Scriptin içindeki herşeyi silin void uptade ve start bölümlerini sadece sil)
--------------------------------------------------------------------------------------------------------------
Kodun içerisine yazılacaklar=
"
public float hiz, mesafe;
public bool yurume, ates;
public Transform karakter;
Vector3 poz;
void Start () {
}
void Update () {
poz = new Vector3 (karakter.position.x, transform.position.y, karakter.position.z);
mesafe = Vector3.Distance (transform.position, karakter.position);
if (mesafe < 21 && mesafe > 10) {
yurume = true;
}
if (mesafe < 10) {
yurume = false;
ates = true;
}
if (yurume) {
hiz = 6;
transform.position = Vector3.MoveTowards (transform.position, karakter.position, hiz * Time.deltaTime);
transform.LookAt (poz);
}
if (ates)
{
transform.LookAt (poz);
}
if (yurume == false && ates == false) {
}
}
"
-------------------------------------------------------------------------------------------------------------
Not= tırnak işaretlerini almayınız.
Bu kodu yapıştırın sonra Ctrl+S tuşu ile kaydedin
--------------------------------------------------------------------------------------------------------------
2-Şimdi Ates kodunu açın ve şu şekilde güncelleyin=
"
public float mermi, menzil,siradakiates;
public bool ates;
RaycastHit hit;
void Start () {
}
void Update () {
if (Input.GetMouseButton (0) && mermi > 0 && Time.time > siradakiates)
ates = true;
mermi--;
}
void FixedUpdate(){
if (ates) {
ates = false;
if (Physics.Raycast (Camera.main.transform.position, Camera.main.transform.forward, out hit, menzil)) {
if (hit.transform.tag == "Dusman") {
Debug.Log ("Dusman zarar aldı");
Destroy (hit.transform.gameObject);
}
}
}
}
"
--------------------------------------------------------------------------------------------------------------
Bunuda kaydedin ve motora geri gelin.
Şimdi Ates kodunu yaratığınız FPS Characterının içine atınız, Şimdi FPS objesini seçin ve Insceptor Bölümündeki "Ates " kodunu bulun ve Mermi=500
Menzil = 70 yapınız.
Şimdide Capsule tıkalyın ve bu seferde bundaki ınsceptor bölümüne tıklayın ve Hız=5 yapın
Durun daha bitmedi, şimdi burada bize "Karakter" adlı yeri soruyor buranın içerisine Hiearcy bölümündeki FPSController>FPS characterını tutun ve buranın içerisine sürükleyiniz.
Şimdi Ctrl+s tuşu ile oyunu kaydedin ve oyunu başlatın Capsule sizi takip edecek, zara verip öldürmek için Sol tık ile ateş edin unutmayın şuan attığımız ates Ekranın tam ortasından çıkıyor , ekranı ortalayarak capsule ates edin iki üç atıştan sonra ölecek.
Anlamadığınız bir yer var ise sorun.
Kolay gelsin.
Buyurunuz buda yazdığım kodun çalıştığının kanıtı.(Video bana aittir. İçeriklerde bana aittir)