Popüler Yayınımıza da Göz Atabilirsiniz

Unity ile Arkaplan Rengini Sürekli Değiştirmek Color.Lerp

    


    Unity'de Image , Sprite veya kamera rengini yumuşak , hafif geçişler yaparak değiştirmeyi ve güzel farklı bir görünüm yapıp elde etmeyi sizlere göstereceğim. Bu işlem için Color.Lerp ' den faydalanıyoruz. Peki Color.Lerp nedir? Ne işe yarar? Nasıl kullanırız?

Bunun için örnekler göstereceğim ayrıca size scripti de ücretsiz olarak paylaşacağım.

    Color duzenlenmis_renk = Color.Lerp(mevcut_renk , hedef_renk , deger);

Deger değişkeni 0 ile 1 arasında bir float değer olmalı. Eğer sürekli bir renk değişimi istiyorsanız. Update , FixedUpdate veya bir IEnumerator içinde çalıştırabilirsiniz.

   mevcut_renk Color.Lerp(mevcut_renk , hedef_renk , deger);

Bu şekilde yaparak da belli rengi sürekli yumuşatabilirsiniz.

Bu fonksiyona göre mevcut renginiz ve hedef renginiz arasında belirlediğiniz renge göre bir renk belirliyor ve onu düzenlenmiş renk olarak uyguluyor. Peki nasıl yapıyor? 

Bir sayı doğrusu düşünelim. Mevcut rengimize 0 , hedef renge 1 diyelim. Eğer değerimizde  örneğin 0.5f ise düzenlenmiş değer 0.5f olacaktır. 0.3f ise 0.3f olacaktır. Aslında oran mantığı ile çalışıyor. Güncellediğimiz değeri tekrar lerp edersek bu sefer 0.5f ile 1f arasında oran oluşur değerimizde 0.5f olduğu içi 0.75f olacaktır. Yani mecut ve hedef rengin ortasında vermiş olduğunuz değere göre oran yapıyor sürekli. Bu da işlemi yumuşatıyor. Eğer değerimiz ne kadar 1'e yakın olursa o kadar hızlı olur. Ne kadar 0'a yakın olursa o kadar yavaş olacaktır.

Ayrıca işlem sürekli olduğunda sayı doğrusu küçüldüğü için renk değişimi de göze farklı gelmeyecek şekilde değişecektir. 

Scripti buradan indirebilirsiniz: https://github.com/RehaStudio/ChangeColorContinuous





Yorumlar

Bu blogdaki popüler yayınlar

C# örnekleri oyun nasıl yapılır

C# ile List İçinde Değer Arama ve Bulma Find ve FindAll Komutu