2d carakteri animasyonlu sağa sola döndürme yardım.

      2d carakteri animasyonlu sağa sola döndürme yardım.

      Meraba arkadaşlar. forma bugün katıldım.
      kısaca kendimden bahsediyim.
      ben oyun yapma işine yeni başladım. önceden Arma 3 farming simulator serive vb. oyunlara modlar hazırlıyordum.
      artık bir gazi ve evde yatan biri olarak bu işten ek gelir evde para kazanmak istiyorum.
      onun icinde mobil oyun sectörüne giriş yapacağım.
      bildiğim programlar 3d max modelleme ve animasyon. adobe shop ve after efect. macro media orta derecedeler hepsi.
      kodlama bilgim 1 yaşindaki cocuk ne biliyosa okadar. ingilizce eh işte derdimi anlatırım civarında.

      zaten haftaya kodlama üzerine ankarada kurs arıyorum birini bulup gidecem. bu kodlama işini cözmem lazım. cok azim ettim.

      benim ASIL SORUM.
      -----------------
      unity 3d de 2d platform oyun hazırlıyorum ( Öğrenme amaclı yapa yapa öğreniyorum.)
      3d unity arayüzünü baya çözdüm.
      sorun scriptle karakteri hareket ettirebiliyorum sıkıntı yok yanlız karakter sağa sola dönerken animasyonlu dönmüyor. düz dönüyor kayarak.

      script olarak






      using UnityEngine;

      using System.Collections;

      public class runcon : MonoBehaviour {

      public float maxSpeed;

      Rigidbody2D myRB;

      Animation myAnim;

      bool facingRight;

      // Use this for initialization

      void Start () {

      myRB = GetComponent<Rigidbody2D>();

      myAnim = GetComponent<Animation>();

      facingRight = true;

      }



      // Update is called once per frame

      void FixedUpdate () {

      float move = Input.GetAxis("Horizontal");

      myAnim.SetFloat

      myRB.velocity = new Vector2(move * maxSpeed, myRB.velocity.y);

      if(move>0&&!facingRight)

      {

      flip();

      } else if (move < 0 && facingRight)

      {

      flip();

      }

      }

      void flip()

      {

      facingRight = !facingRight;

      Vector3 theScale = transform.localScale;

      theScale.x *= -1;

      transform.localScale = theScale;

      }

      }



      sorun... kısmı setFloat yazarken bu kod önerilerde cıkmıyor ve hata veriyor
      yani bu kod yok diyor unity 5.xx versiyonum code yazarken visual studyo kullanıyorum. csharp olarak.
      unity de ise carakter animasyon ekranımda ise carakterDur ve karakter yürü motion larım var bunları birbirine bağladım sorun yok.
      bağlantıları tıklayınca sağda cıkan conditions ta ise speed değerim 0.01 greater ve dönüş olarak ta less değerim gene 0.01
      oda tmm.
      ve son olarak parameters te ise float ekledim ve değer 0.0 bunuda yaptım.
      ama genede karakter sağa sola a ve d tuşlarıyla kayarak dönüyor. koşarak dönmesini istiyorum.
      acaba nerde yanlış yapmış olabilirim.
      Mecanim Controllerda bağlamışsın herşeyi ama yapıyı tam çözememişsin gibime geldi. Usta sen şimdi "koşma" animasyonundan "yürüme" animasyonuna geçtiğinde "koşma" animasyonu duruyor dimi ? Evet duruyor. Peki şimdi sen koşarken dönersen "koşma" animasyonu durmayacak mı? Duracak. Yani anlatmak istediğim şey şu sen koşarken döndürüyorsan ve dönme animasyonu yeterli kaliteyi veremiyorsa dönme animasyonunu yenilemen lazım.

      Tabi şimdi float ile dönme hızı vs ayarladıysan ki parametre koymuşsun sanırım o tarz bir animasyona sahipsin, o zaman şu tarz bir kod yazman gerekiyor.

      Source Code

      1. anim.SetFloat("Speed", PlayerSpeed);


      Yani Mecanim Controller kısmında bulunan "Speed" parametreme kendi scriptimde bulunan "PlayerSpeed" değerini atıyorum. Umarım anlatabilmişimdir.
      Trifles Games

      Biz birbiri ile bir yıl öncesine kadar çok da alakası olmayan sekiz insanız. ^^

      Trifles Games >> trifles.gs/
      gokhankinay.com.tr/ << Kişisel Web Sitem

      cok sağolun hocam set komutlarını kabul etti..
      bu seferde Animator komutunda hata var diyor.

      Source Code

      1. using UnityEngine;
      2. using System.Collections;
      3. public class player : MonoBehaviour {
      4. public float maxSpeed;
      5. Rigidbody2D myRB;
      6. Animator myAnim;
      7. bool facingRight;
      8. // Use this for initialization
      9. void Start () {
      10. myRB = GetComponent<Rigidbody2D>();
      11. myAnim = GetComponent<Animator>();
      12. facingRight = true;
      13. }
      14. // Update is called once per frame
      15. void Update () {
      16. float move = Input.GetAxis("Horizontal");
      17. myAnim.SetFloat("speed", Mathf.Abs(move));
      18. myRB.velocity = new Vector2(move * maxSpeed, myRB.velocity.y);
      19. if(move>0&&!facingRight)
      20. {
      21. flip();
      22. } else if(move<0&&facingRight)
      23. {
      24. flip();
      25. }
      26. }
      27. void flip()
      28. {
      29. facingRight = !facingRight;
      30. Vector3 theScale = transform.localScale;
      31. theScale.x *= -1;
      32. transform.localScale = theScale;
      33. }
      34. }

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

      ufak tefek gecikmeler var ama animasyon gecişlerinde düzeltirim hocam cok sağolun hallettim dediğiniz gibi benim asıl sorunum
      Animation sınıfında set komutunun çalışmamasıymış.
      animator olarak düzelince yürüme animasyonları düzgünce calıştı.
      gercekten yardımlarınız icin teşekkür ederim.
      ben bu işi cözecem ya cok mutlu oldum. :)
      gerci daha emeklemeye bile yeni başladım ama olsun :D