Sticky Herhangi bir objeyi loop halinde hareket ettirme

      Herhangi bir objeyi loop halinde hareket ettirme

      Bu kodu herhangi bir objeye verdiğinizde obje 4 aşamalı olarak hareket eder. örnek: Sola gider, bekler, sağa gider, bekler, tekrar sola gider böyle devam eder. Bu kod 2d oyunlar için yazılmıştır. 3d de kullanmak için aynı şekilde y ve z kordinatlarını ekleyebilirsiniz.
      Kodu verdikten sonra objede editörde değişkenleri istediğiniz gibi giriniz.

      moveControl : 1.2.3.4 olabilir. ilk hareketi vermenizi sağlar
      1:sağa hareket.
      2:bekleme
      3:sola hareket
      4:bekleme

      moveSpeed: hareket hızı
      stopTimer:bekleme süresi (stopTimerCD ye de aynı değeri veriniz.)
      goTimer:hareket ederken geçecek olan süre (goTimerCD ye de aynı değeri veriniz)



      [hide]

      Source Code

      1. var moveControl:int;
      2. var moveSpeed:float;
      3. var stopTimer:float;
      4. var stopTimerCD:float;
      5. var goTimer:float;
      6. var goTimerCD:float;
      7. function Update()
      8. {
      9. moveIt();//fonksiyonu çağırıyoruz her framede
      10. }
      11. function moveIt()
      12. {
      13. if(moveControl == 1)// moveControl 1 ise
      14. {
      15. gameObject.transform.position.x += Time.deltaTime * moveSpeed;//x değeri speed kadar artsın
      16. gameObject.transform.localScale.x = -1.39f;// buradaki scale değerini objenin x scale i ne ise onu yazın
      17. goTimer -= Time.deltaTime;//zamanlayıcı çalışıyor
      18. if(goTimer <= 0)//zamanlayıcı 0 olduğunda
      19. {
      20. goTimer = goTimerCD; // tekrar zamanlayıcıyı başa alıyoruz
      21. moveControl = 2;//2. aşamaya geçiliyor
      22. }
      23. }
      24. else if(moveControl == 2)
      25. {
      26. stopTimer -= Time.deltaTime;//burda da bekleme zamanlayıcısı çalışıyor
      27. if(stopTimer <= 0)
      28. {
      29. stopTimer = stopTimerCD;// gerisi aynı mantık devam ediyor.......
      30. moveControl = 3;
      31. }
      32. }
      33. else if(moveControl == 3)
      34. {
      35. gameObject.transform.position.x -= Time.deltaTime * moveSpeed;
      36. gameObject.transform.localScale.x = 1.39f;//burda yine scale x değerini unutmayın
      37. goTimer -= Time.deltaTime;
      38. if(goTimer <= 0)
      39. {
      40. goTimer = goTimerCD;
      41. moveControl = 4;
      42. }
      43. }
      44. else
      45. {
      46. stopTimer -= Time.deltaTime;
      47. if(stopTimer <= 0)
      48. {
      49. stopTimer = stopTimerCD;
      50. moveControl = 1;
      51. }
      52. }
      53. }
      [/hide]

      Post was edited 1 time, last by “yigo2413” ().

      Accelerometer diyosun. Onu henüz hiç kullanmadım. Ama direk Input classının içinde kullanması kolay yani. Input.acceleration .x, .y, .z diye yazılabiliyor. Örnek kod (unity nin sitesinden):

      [hide]

      Source Code

      1. var speed = 10.0;
      2. function Update () {
      3. var dir : Vector3 = Vector3.zero;
      4. // we assume that the device is held parallel to the ground//cihazın yere paralel tutulduğunu varsayıyoruz
      5. // and the Home button is in the right hand//home butonu sağ elde kalacak şekilde tutuyoruz
      6. // remap the device acceleration axis to game coordinates://cihazın ivmeölçer kordinat sistemini oyuna göre ayarlama
      7. // 1) XY plane of the device is mapped onto XZ plane//cihazın XY kordinatı oyunda XZ olarak ayarlayalım
      8. // 2) rotated 90 degrees around Y axis
      9. dir.x = -Input.acceleration.y;
      10. dir.z = Input.acceleration.x;
      11. // clamp acceleration vector to the unit sphere
      12. if (dir.sqrMagnitude > 1)
      13. dir.Normalize();
      14. // Make it move 10 meters per second instead of 10 meters per frame...//frame başına 10 metro hareket etsin
      15. dir *= Time.deltaTime;
      16. // Move object
      17. transform.Translate (dir * speed);
      18. }
      [/hide]
      Teşekkürler yorumun için. Henüz bitmedi oyunum yakın bir zamanda bitecek ama. Linki burda http://yigitozturk.com/#!/?page_id=99.
      Sensörün kordinat sistemi hakkında da kullanmadığım için birşey diyemeyeceğim ama deneyerek çözülecek birşey o.
      Simulatorde normalde ivmeölçer yok heralde. Åžöyle birşey buldum http://www.openintents.org/en/node/6 alt kısımda download the Sensor Simulator kısmından indirilebiliyor. Java ile çalışan küçük bir program sensör datalarını emulatöre gönderiyor. Bu şekilde test edebilirsiniz

      Edit: http://code.google.com/p/openintents/wiki/SensorSimulator burda da var.

      Post was edited 1 time, last by “yigo2413” ().

      İvmeölcer olayını denedim. Kordinatlara göre -10 ile +10 arasında değer veriyor.

      [hide]

      Source Code

      1. var accelX:float;
      2. function Update()
      3. {
      4. accelX = Input.acceleration.x ;
      5. }
      [/hide]

      yazdığımızda iphone'u sağa ve sola yatırdığımızda(yere paralel olarak) accelX değişkenini -10 ile +10 arası değiştiriyor.

      Örnek olarak bir uzay gemimiz var diyelim ismi "ship" olsun.


      [hide]

      Source Code

      1. var accelX:float;
      2. var ship:GameObject; //editörde ship objesini seçin
      3. function Update()
      4. {
      5. accelX = Input.acceleration.x ;
      6. ship.transform.position.x = accelX; // accelX değişkeni şimdi gemiyi hareket ettirecek.
      7. }
      [/hide]

      eğer az yada çok hareket ediyor ise ,

      [hide]

      Source Code

      1. ship.transform.position.x = accelX * 5 ;
      yada[/hide]

      [hide]

      Source Code

      1. ship.transform.position.x = accelX / 5;
      gibi değiştirebilirsiniz.[/hide]

      Aynı kodları y ve z kordinatlarına da uygulayabilirsiniz. Aynı kodlar Android için de geçerli ancak androidde sanırım X ile Y kordinatı zıt.
      hocam bilginiz oldugundan size danışmak istedim konuyla pek alakası yok

      ben yeni başladım araba üzerine yapmaya basladım arabamı herşeyini yaptım yalnız arabam ileri giderken sola yada saga farketmiyor nereye dönersem ' ' yan 2 teker ' ' havaya kalkmaya baslıyor sonra takla atıyor. ufak bi dönmeyle takla atıyor. ve geri geri giderken arabanın arkası yukarı kalkıyor ' ' basılı tutunca bu seferde o şekil takla atıyor :( Sorun sizce ne olabilir heryerde araştırdım ama malesef çözüm bulamadım
      @Umut Anubiss Araban için jCar scriptinimi kullanıyorsun ? Tekerlek olayı için wheel collider'da radius olucak. Onu tam tekerlekle aynı boyuta ayarla.
      Eğer jCar scriptini kullanıyorsan bende de aynı şekilde geriye giderken arkası kalkıp takla atıyor. Scriptde gears değerlerini değiştir element 0'ı deneye deneye bak.
      Ama tavsiyem başka bir araba scripti bul yada kendin yaz.
      arabama herşeyi yaptım yapamazsın diye birşey yok. tek sorun arabamın takla atması bunu çözdükten sonrası haritama geçmem demektir. projemi çizmem ws... aynı şeyleri diğer arabalarıma uygularım hepsini biliyorum scripstler var ama tek sorun 1 haftadır çözemedigim şu arabanın dönerken devrilmesi.