Unity’de Lerp fonksiyonu nasıl kullanılır?

Unity rehberleri serimizin yeni içeriğinde Lerp fonksiyonunu anlattık.
unity lerp nasıl yapılır
Unity Lerp, Mathf

Lerp bir noktadan diğer noktaya belli bir zamanda doğrusal ölçekte gitmemizi yarayan fonksiyondur.

Bu ölçek tamamıyla doğrusal da olabilir artarak gidiyor olabildiği gibi, ayrıca Unity içerisinde bu bahsettiğimiz noktalar Vector de olabilir: -Vector3.Lerp(Vector3 a, Vector3 b, float t) kullanımı örnek gösterilebilir. Ek olarak bu değişken float tipinde de olabilir: Mathf.Lerp(float a , float b, float t) kullanımı örnek gösterilebilir.

Vector3.Lerp() 

Vector3.Lerp(Vector3 a, Vector3 b, float t) şeklinde yazılan fonksiyonumuz şu formül ile çalışır: a+ (b-a) * t  ve bu değeri “return” eder. Bu yüzden kullanım yaparken bu değeri değişmesini istediğiniz değişkene eşitlemeniz gerekir.

Örneğin objenizin pozisyonunu (0,5,0) pozisyonuna lerp işlemi uygulayarak götürmek istiyorsunuz. Bunun kodu şu şekilde olucaktır.

Eğer burdaki “lerpValue” değişkeninin değeriyle oynarsanız nasıl bir grafikle posizyon değiştireceğini görebilirsiniz. Örneğin değeri 1’e yakınlaştırdığınızda veya 1’den büyük yaptığınızda objenizin pozisyonu direkt verdiğiniz pozisyona gidecektir ama değeri 0’a yaklaştırdıkça ise yapmış olduğunuz hareket biraz daha yavaşlayıp “smooth” diye tabir ettiğimiz yumuşak geçişi elde etmiş olucaksınız.

Ufak bir ipucu: Eğer lerpValue değerinizi 0.5 yaparsanız her seferinde kalan yolunun yarısını alarak yoluna devam edecektir.

Mathf.Lerp()

Son bakacağımız fonksiyon olan Mathf.Lerp(float a , float b, float t) ise iki float değerin arasında smooth geçiş olmasını sağlar. Diyelim ki bizim bir değerimiz var:a 2 olsun. Bu değer ve biz bu değeri bir anda değil de smooth bir şekilde 4 yapmak istiyoruz bunun için ne yapabiliriz diye düşündüğünüz anlarda aklınıza hemen Mathf.Lerp() gelmeli. Örneği hemen aşağıda görebilirsiniz:

Vector3.Lerp() için söylediğimiz lerpValue değişkenine hangi değeri verdiğinizde neler olacağı kısmı aynı şekilde burda da geçerli deneyip Inspector penceresinden siz de görebilirsiniz.

Mobidictum Academy YouTube kanalımızda, son dönemin popüler oyunlarından ATM Rush’taki Lerp fonksiyonundan da bahsetmiştik. Aşağıdaki videodan izleyebilirsiniz.

1 comments
  1. Selamun aleyküm hocam, yazınız gayet güzel. Ama benim küçük bir sorum olacaktı. Benim amacım oyuncu sağına veyahut soluna döndüğü zaman kamera da oyuncu ile birlikte sağa veya sola dönsün istiyorum. Bunun için bu kodları nasıl kullanmalıyım. Normal takibi şu kodlarla sağlıyorum;
    public class CameraController : MonoBehaviour
    {
    public GameObject player;
    private Vector3 offset;
    void Start()
    {
    offset = transform.position – player.transform.position;
    }

    // Update is called once per frame
    void LateUpdate()
    {
    transform.position = player.transform.position + offset;
    }
    }
    Bu koda ne eklemeliyim ki amacıma ulaşabileyim?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir