Çözüldü Unity Objenin position.x inin azalma artma durumunu algılama

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Lykoss

Decapat
Katılım
23 Mayıs 2021
Mesajlar
957
Çözümler
6
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Arkadaşlar objenin x eksenindeki değeri artıyorsa ve azalıyorsa ona göre karakteri çevirmem gerekiyor. Ama koşul ifadesini nasıl yapacağımı çözemedim. Obje Vector2.MoveTowards ile başka bir objeye ilerliyor.


C#:
transform.rotation = Quaternion.Euler(0f, 0f, 0f);


transform.rotation = Quaternion.Euler(0f, 180f, 0f);
 
Çözüm
Arkadaşlar objenin x eksenindeki değeri artıyorsa ve azalıyorsa ona göre karakteri çevirmem gerekiyor. Ama koşul ifadesini nasıl yapacağımı çözemedim. Obje Vector2.MoveTowards ile başka bir objeye ilerliyor.


C#:
transform.rotation = Quaternion.Euler(0f, 0f, 0f);


transform.rotation = Quaternion.Euler(0f, 180f, 0f);
Bu kodu al. Projede bir yere koy.

Kullanımı.


C#:
  public class Test : MonoBehaviour
    {
        private VelocityUtil velocityUtil;
        public void Awake()
        {
            velocityUtil = new VelocityUtil(transform);
        }

        private void Update()
        {
            velocityUtil.Update();
            if (velocityUtil.Motion.x>0)
            {
                // x ekseninde değişim varsa kodu.
            }
        }
    }
Arkadaşlar objenin x eksenindeki değeri artıyorsa ve azalıyorsa ona göre karakteri çevirmem gerekiyor. Ama koşul ifadesini nasıl yapacağımı çözemedim. Obje Vector2.MoveTowards ile başka bir objeye ilerliyor.


C#:
transform.rotation = Quaternion.Euler(0f, 0f, 0f);


transform.rotation = Quaternion.Euler(0f, 180f, 0f);
Bu kodu al. Projede bir yere koy.

Kullanımı.


C#:
  public class Test : MonoBehaviour
    {
        private VelocityUtil velocityUtil;
        public void Awake()
        {
            velocityUtil = new VelocityUtil(transform);
        }

        private void Update()
        {
            velocityUtil.Update();
            if (velocityUtil.Motion.x>0)
            {
                // x ekseninde değişim varsa kodu.
            }
        }
    }
 
Çözüm
C#:
    void Update()
    {
        if (Vector2.Distance(transform.position, player.position) > 6)
        {
            transform.position = Vector2.MoveTowards(transform.position, player.position,10 * Time.deltaTime );
            
        }


        velocityUtil.Update();
        if (velocityUtil.Motion.x < 0)
        {
            transform.rotation = Quaternion.Euler(0f, 180f, 0f);
        }
        
        
        
        else if (velocityUtil.Motion.x > 0)
        {
            transform.rotation = Quaternion.Euler(0f, 0f, 0f);
        }

    }
@Foxie hocam bu şekilde yaptım. Ama karakter engele çarpınca sürekli rotationu değişiyor.
 
C#:
    void Update()
    {
        if (Vector2.Distance(transform.position, player.position) > 6)
        {
            transform.position = Vector2.MoveTowards(transform.position, player.position,10 * Time.deltaTime );
           
        }


        velocityUtil.Update();
        if (velocityUtil.Motion.x < 0)
        {
            transform.rotation = Quaternion.Euler(0f, 180f, 0f);
        }
       
       
       
        else if (velocityUtil.Motion.x > 0)
        {
            transform.rotation = Quaternion.Euler(0f, 0f, 0f);
        }

    }
@Foxie hocam bu şekilde yaptım. Ama karakter engele çarpınca sürekli rotationu değişiyor.
velocityUtil.Motion.x > 1 ve velocityUtil.Motion.x < 1

şeklinde yapar mısın if içindekileri.
 
Çözülmedi hocam.
Hocam o zaman başka bir nedenden dolayı dönüyor olabilir. Rigidbody ile alakalı gibi geldi bana, objede Rigidbody var mı?

Bir çarpışma olduğunda hareket yönü değiştiği için obje döner o koddan kaynaklı, ama bu hareket çok ufaktır.
 
Hocam o zaman başka bir nedenden dolayı dönüyor olabilir. Rigidbody ile alakalı gibi geldi bana, objede rigidbody var mı?

Bir çarpışma olduğunda hareket yönü değiştiği için obje döner o koddan kaynaklı, ama bu hareket çok ufaktır.

Rigidbody var hocam.
1674652719157.png

Flip kodunu sildiğimde engele çarpınca sadece titriyor.
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı