Unity'de Smooth LookAt Sorununa Çözüm
Unity'de sürekli yaşadığım ve genellikle aynı yöntemle çözdüğüm bir problem konusunda Unity kullananlara da bu deneyimimi paylaşmak istiyorum.Eğer transform.LookAt(); kullanırken hedefe çok sert dönüş olursa smooth look at yapmak adına:
var targetRotation = Quaternion(target.position-transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation,targetRotation,Time.deltaTime);
kullanırız.
Ancak bu kodun çalıştığı obje bir mesh(model) ise genel olarak yaşadığım problem objenin istenen yöne dönmeden saçma hareketler yapmasıydı.Bunu çözmek ise oldukça basit.Yeni boş bir gameobject oluşturup,meshinizi veya garip hareket eden objenizi bu objenin içine atmak(child'ı yapmak).Sonra kodu bu parent objeye atayıp eskisinden kaldırırsanız objeniz yumuşak olarak hedefe doğru dönecektir.Daha hızlı veya yavaş dönmesi için Time.deltaTime*0.5f veya Time.deltaTime*3f gibi katsayılarla üstteki kodda bulunan kısmı çarparak hızı ayarlayabilirsiniz.Herkese kolay gelsin 🙂
#akış #TeknoYardım #Unity #OyunGeliştirme
Tween de mantıklı bir alternatif ancak genel olarak pek ihtiyaç duymadım arayüz haricinde
Sonradan gelen edit:Quaternion değil Quaternion.Euler olacak gençler