Merhabalar dostlar, bu yazıda halihazırda ingilizce halde bulunan DOTween Doküman Türkçeleştirmesi işlemini gerçekleştirip, yerli oyun geliştiricilerimiz için kullanmını daha kolay hale ve anlaşılır hale getireceğiz. Bilmeyenler için DoTween eklentisi hakkında konuşmak gerekirse, Unity içerisinde bulunan, özel bileşenlerden tutun, float,int gibi temel tipteki değişkenlerdeki değerleri, istediğimiz değerlere istediğimiz sürede eşitliyor diye özetlemek sanırım yeterli olacaktır. Video olarak anlatımı sevenleriniz için de yaptığımız örnek videoların bırakıyorum. Ayrıca isterseniz şuradan orjinal dilde doküman incelemeniz de mümkün.
Öncelikle, tamamında Türkçe çeviri yapmayacağım için, bazı özel anahtar kelimeleri anlamanızı istiyorum. Başta bunları belirtip daha sonrasında yola devam etmek daha mantıklı olacak. Tween kelimesi, ingilizce derslerinden bildiğimiz “between” kelimesinden de aşina olacağınız şekilde “ara, arada” anlamlarına geliyor. Temel olarak değerlerimize belirli bir “aralık” vererek bunları değiştirmemize yardımcı olan bir yapı olarak karşımıza çıkıyor bu eklenti içerisinde.
Tween kelimesi aslında eklenti içerisinde kullanabileceğimiz yapılara verebileceğimiz genel bir isim. Eklenti içerisinde yaratabileceğimi Tween tipleri ise Tweener, Sequence olarak ikiye ayırabiliriz. Bir de Nested Tween dediğimiz bir yapı var ki, bu da aslında bir Sequence içerisinde bulunan bir tweeni adlandırmak için kullandığımız bir şey.
DOTween Ön-Ekler
Ayrıca, kodlama kısmında da bazı şeylerden bahsetmek istiyorum. Prefixes olarak geçen kelimeler, DOTween ön-ekler olarak da adlandırabiliriz, kodlama konusunda bize rahatlık sağlayacak şeyler. 3 Adet bulunuyor, bunlar DO, Set, On kelimeleridir.
- DO : Bütün temel değişken değeri değiştirme komutlarımız bu ön eke sahip. Örnek vermek gerekirse, DOMove() veya DOColor() fonksiyonları bu ön eke sahip. Bunlarlar konum ve renk değişimleri yapabiliyoruz.
- Set : Tween objelerimiz, yani değer değiştirme işlemlerimizin ayarları için kullanılan ön ek. Örneğin SetLoops() fonksiyonu ile, bu değişimin kaç defa tekrar edeceğini belirleyebiliriz.
- On : On ön ekini callback dediğimiz etkileşimler için kullanıyoruz. Örneğin OnComplete() fonksiyonu sayesinde bir tween objemizdeki değiştirme işlemi tamamlandığında istediğimiz kodları çağırabiliriz.
DOTween Başlatma
Normal şartlarda, DOTween Başlatma işlemini eklentinin kendisi otomatik olarak gerçekleştiriyor. Ancak temel ayarlardan memnun olmayabilirsiniz. Bu aşamada DOTween.Init() fonksiyonunu kullarak istediğiniz ayarları değiştirebilirsiniz. Bu Fonksiyonun alacağı 3 değişken bulunuyor.
- recycleAllByDefault : Yarattığımız tween nesnelerinin tamamen yok edilip edilmediğini belirttiğimiz değişken. True değeri verirseniz, tween nesneleri yapacakları işlemleri tamamladıklarında, tamamen yok olmak yerine Object-Pooling mantığında olduğu gibi, bir havuzda toplayıp, gerektiğinde sıfırdan yaratmak yerine buradan erişmemizi sağlar. Ayrıca isterseniz istediğiniz zaman DOTween.defaultRecyclable seçeneğiyle bu ayarı değiştirebilirsiniz. Veya her bir tween nesneniz için ayrı olarak SetRecyclable() fonksiyonunu kullanabilirsiniz. Böylece belirli nesnelerin bu özelliği kullanmasını sağlayabilirsiniz.
- useSafeMode : Verdiğimiz komutlar arkaplanda çok fazla ağır işlem gerektiriyor olabilir. Bu gibi durumların önüne geçmek için bu değişkene True değeri vermekte fayda var. Duruma göre daha yavaş çalışmalara sebep olabilir, ancak hata alma durumlarını da otomatik olarak algılayıp sorunu giderir. Bu hata alma durumlarından kasıt, a objesi b objesine doğru gidiyorken, b objesinin yok olması. Yani gidilecek konum için için null değer dönmesi buna bir örnek.
- logBehaviour : Tamamen debug ekranında verilecek uyarılar için kullandığımız bir değişken. Sadece uyarıları, hataları veya bütün bildirimleri log ekranına yazdırmayı buradan seçebiliriz.
//Örnek başlatma komutu.
DOTween.Init(true, true, LogBehaviour.Verbose);
DOTween Tweener
Şimdi öncelikle Tweener yapısından bahsedelim. Tweener, tek başına sadece 1 değişken kontrol ettiğimiz değişken tipi. Dokümanın devamında görebileceğiniz gibi, istediğimiz değişikliği aslında bir değişken gibi tutup, sonrasında tekrar tekrar bu değişkeni kullanarak değişiklikleri yapabileceğiz.
// 2,2,2 pozisyona 2 saniyede gitmemizi sağlayan
//bir tweener nesnesi yaratıyoruz ve bunu değişkene atıyoruz.
Tween myTween = transform.DOMove(new Vector3(2,2,2), 2);
Tweener Fonksiyonları
Tweener Fonksiyonlarını 3 başlığa ayırabiliriz. Bunlar Genel, Kısayol Fonksiyonlar ve Ekstra Genel fonksiyonlardır.
Genel Fonksiyon: static DOTween.To(getter, setter , verilecekDeger, float sure). Bu fonksiyan, içerisine verdiğini herhangi bir değişkenin değerini verdiğini süre içerisinde istediğiniz değere getirir. Ayrıca sonunda From() eklerseniz, verdiğiniz değeri başlangıç değeri olarak alıp, şu anda sahip olduğu değere gelmesini sağlar. Bir nevi işlemi tersten yapar.
- getter: Değiştirelecek özelliğin değerini sağlayan delegate. Lambda olarak yazılabilir. ()=> degiskenAdi: Buradaki degiskenAdi değiştirmek istenilen değişkendir.
- setter: Verilmiş özelliğin değerini değiştiren delegate. Lambda olarak yazılabilir. Örneğin: x=> degiskenAdi = x
- to : Özelliğin erişmesini istediğiniz değer.
- sure : Değişimin süresi.
// vektorDegiskeni isimli değişken değerini
DOTween.To (() => vectorDegiskeni, x => vectorDegiskeni = x, new Vector3 (3, 4, 8), 3);
//From ekleyerek işlemi geri doğru yaptırıyoruz.
DOTween.To (() => vectorDegiskeni, x => vectorDegiskeni = x, new Vector3 (3, 4, 8), 3).From ();
Kısayol Fonksiyonları: Bu fonksiyonlar, Unity özel bileşenlerine DOTWeen eklentisi aracılığıyla eklenen ekstra fonksiyonlardır. Bu sayede direkt bileşen ya da değişken üzerinden değişiklik yapabilirsiniz.
// Transform Bileşeni Örnek kullanım
transform.DOMove (new Vector3 (15, 0, 3), 3);
//Sprite Renderer Örnek kullanımı
spriteRenderer.DOColor (Color.green, 3);
Örnek kullanımlardan göreceğiniz üzere, aşağıda listeleyeceğimiz bileşen tiplerindeki değişkenlerinizde, sonuna “.” koyup yazarak çağırabilirsiniz.
Ses Karıştırıcı (AudioMixer):
- DoSetFloat( string degiskenIsmi, float istenenDeger, float sure): AudioMixer nesnesi içerisinde erişime açık haldeki değişkenlerin istenilen değere istenilen sürede erişmesini sağlayan fonksiyon. Değişkenlerin el ile erişilebilir hale getirilmesi gerekir.
Ses Kaynağı (AudioSource):
- DOFade(float istenenDeger, float sure): AudioSource nesnesini volume değerinin verilen sürede verilen değere çekilmesini sağlar.
- DOPitch(float istenenDeger, float sure) :AudioSource nesnesinin pitch değerinin verilen sürede verilen değere çekilmesini sağlar.
Kamera(Camera):
- DOAspect(float istenenDeger, float sure) : Kamera objesinin aspect değerinin istenilen sürede istenilen değere çekilmesi sağlanır.
- DOColor(Color istenenDeger, float sure) : Kameranın arkaplan rengini istenilen sürede verilen değer getirir.
- DOFarClipPlane(float istenenDeger, float sure) : Kameranın farClipPlane değişkenini istenilen sürede istenilen değere getirir.
- DOFieldOfView(float istenenDeger, float sure) : Kameranın Field of View değerini istenilen sürede istenilen değere getirir.
- DONearClipPlane(float istenenDeger, float sure) : Kameranın nearClipPlane değerini istenilen sürede istenilen değere getirir.
- DOOrthoSize(float istenenDeger, float sure) : Kameranın orthographicSize değerini istenilen sürede istenilen değere getirir.
- DOPixelRect(Rect istenenDeger, float sure) : Kameranın pixelRect değerini istenilen sürede istenilen değere getirir.
- DORect(Rect istenenDeger, float sure) : Kameranın rect değerini istenilen sürede istenilen değere getirir.
- DOShakePosition(float sure, float/vector3 strength, int vibrato, float randomness, bool fadeOut) : Kamerayı lokal x-y ekseninde sallar.
- From seçeneği yoktur.
- strength : Sallamanın kuvveti. Float yerine Vector 3 kullanılırsa her eksende farklı bir kuvvet uygulanabilir.
- vibrato : Kameranın sallanma titreşimi.
- randomness : Sallamanın rastgeleliği. 0-180 arası. 90 üzeri değerler kötüdür, bilginiz olsun. 0 değeri vermek sadece tek yönde sallama yapacaktır.
- fadeOut : (varolan:True) Eğer true değere sahipse tween’ler arası yumuşakça geçiş yapacaktır.
- DoShakeRotation(float sure, float/vector3 strength, int vibrato, float randomness, bool fadeOut) : Kameranın açısını lokal eksene göre sallar, silkeler.
- From seçeneği yoktur.
- strength : Sallama şiddeti. Float yerine Vector3 kullanmak her bir eksendeki şiddeti seçmenizi sağlar.
- vibrato : Kamera sallama titreşimi.
- randomness : allamanın rastgeleliği. 0-180 arası. 90 üzeri değerler kötüdür, bilginiz olsun. 0 değeri vermek sadece tek yönde sallama yapacaktır.
- (varolan:True) Eğer true değere sahipse tween’ler arası yumuşakça geçiş yapacaktır.
Işık(Light):
- DOColor(Color istenenDeger, float sure) : Işığn rengini verilen sürede istenen değere getirir.
- DOIntensity(float istenenDeger, float sure) : Işığın yoğunluğunu verilen sürede istenen değere getirir.
- DOShadowStrength(float istenenDeger, float sure) : Işığın gölge kuvvetini verilen sürede istenen değere getirir.
- DOBleandableColor(Color istenenDeger, float sure) : Hedef ışığın rengini verilen sürede verilen değere getirir. DOColor fonksiyonundan farklı olarak aynı objeye bu fonksiyondan birden fazla şekilde uygulanabilir ve birbirlerine uyumlu olarak bir değişim sağlarlar.
LineRenderer:
- DOColor(Color2 baslangicDegeri, Color2 bitisDegeri, float sure) : Hedef bileşenin verilen sürede verilen değere(bitisDegeri) erişmesini sağlar. Burada dikkat edilmesi gereken şey bu fonksiyonda ayrıca başlangıç değeri verildiğidir. Color2 iki farklı rengi tek bir değişkende bulundurmamızı sağlayan özel bir DOTween yapısıdır.
myLineRenderer.DOColor(new Color2(Color.white,Color.white), new Color2(Color.green, Color.black),1);
Materyal (Material):
- DOColor(Color istenenDeger, float sure) : Hedef materyalin rengini istenen değerle değiştirir.
- DOColor(Color istenenDeger, string ozellikAdi, float sure) :Materyalde belirtilen isimdeki alanın rengini istenen değerle değiştirir.
//Materyalin specular değerini değiştirir:
materyal.DOColor(Color.green,”_SpecColor”, 1);
//burada bahsedilen alan materyal shader’ında geçen değerlerdir. Shader özelliklerinden değişkenlerin isimleri görülebilir.
- DOColor(Color istenenDeger, int ozellikID, float sure) : Hedefte id’si verilen özelliğin değerini değiştirir.
- DOFade(float istenenDeger, float sure) : Hedef materyaldeki alfa değeri üzerinde değişiklik yapar. Çalışması için kullanılan materyalin alfa özelliğini desteklemesi gerekir.
- DOFade(float istenenDeger, string ozellikAdi, float sure) : Materyalde verilen özelliğin alfa değerini değiştirir.
- DOFade(float istenen deger, int ozellikID, float sure) : Materyalde id’si verilen özelliğin değerini değiştirir.
- DOGradientColor(Gradient istenenDeger, float sure) :Materyalin rengini verilen gradient değeri ile değiştirir. Notlar: Sadece renkleri kullanır, alfa değerlerini kullanmaz.Tweener değil Sequence oluşturur.
- DOGradientColor(Gradient istenenDeger, string ozellikAdi, float sure) :İsmi verilen özelliğin rengini verilen gradient ile değiştirir.Bir önceki notlar aynı şekilde geçerlidir.
- DOGradientColor(Gradient istenenDeger, int ozellikID, float sure) :ID’si verilen özelliğin rengini verilen gradient değeri ile değiştirir. Bir önceki notlar aynı şekilde geçerlidir.
- DOOffset( Vector2 istenenDeger, float sure) :Materyalin resim konumunu(textureOffset) verilen değerle değiştirir.
- DOOffset(Vector2 istenenDeger, string ozellikAdi, float sure) : Materyalin adı verilen özelliğininin resim konumunu (textureOffset) verilen değerle değiştirir.
- DOOffset(Vector2 istenenDeger, int ozellikID, float sure) : Materyali id’si verilen özelliğinin resim konumun (textureOffset) verilen değerle değiştirir.
- DOTiling(Vector2 istenenDeger, float sure) :Verilen materyalin resim büyüklüğünü (textureScale) verilen değerle değiştirir.
- DOTiling(Vector2 istenenDeger, string ozellikAdi, float sure) :Materyalin ismi verilen özelliğinin resim büyüklüğünü (textureScale) verilen değerle değiştirir.
- DOTiling( Vector2 istenenDeger, int ozellikID, float sure) : Materyalin id’si verilen özelliğinin resim büyüklüğünü (textureScale) verilen değerle değiştirir.
- DOVector( Vector4 istenenDeger, string ozellikAdi, float sure) : Materyalin ismi verilen Vector özelliğinin değerini verilen değerle değiştirir.
- DOVector( Vector4 istenenDeger, id ozellikID, float sure) : Materyalin id’si verilen Vector özelliğinin değerini verilen değerle değiştirir.
- DOBlendableColor( Color istenenDeger, float sure) :Materyalin rengini, birden fazla DOBlendableColor fonksiyonun beraber uyumlu şekilde çalışmasına müsaade edecek şekilde yumuşatır.
- DOBlendableColor( Color istenenDeger, string ozellikAdi, float sure) : Materyalin adı verilen özelliğin rengini, birden fazla DOBlendableColor fonksiyonun beraber uyumlu şekilde çalışmasına müsaade edecek şekilde yumuşatır.
- DOBlendableColor( Color istenenDeger, int ozellikID, float sure) : Materyalin id’si verilen özelliğin rengini, birden fazla DOBlendableColor fonksiyonun beraber uyumlu şekilde çalışmasına müsaade edecek şekilde yumuşatır.
Rigidbody: Bu kısayollar rigidbody bileşenin MovePosition ve MoveRotation metotlarını arkaplanda kullanarak fizik objeleriyle bağlantılı nesneleri doğru şekilde hareket ettirirler.
- DOMove(Vector3 istenenKonum, float sure, bool yuvarla): Nesneyi istenen konuma hareket ettirir.Eğer yuvarla true değere sahipse tween verilen değerleri int tipine yumuşakça yaslar.
- DOMoveX/DOMoveY/DOMoveZ(float istenenDeger, float sure, bool yuvarla) : Nesneyi yalnızca seçilen eksende verilen değer konumuna hareket ettirir. Yalnız bilmeniz gerekir, bir eksene dair hareket yaptığınızda, diğer eksenlerdeki hareket kitlenecektir. Yuvarla isimli değişken bir önceki nottaki gibi çalışmaktadır.
- DOJump(Vector3 istenenDeger, float ziplamaKuvveti, int ziplamaSayisi, float sure, bool yuvarlama) : Objeyi y eksenin zıplama efekti uygularken objeyi istenen konuma getirir. Not: Tweener objesi değil Sequence objesi döndürür.
- istenenDeger: ulaşılacak konum.
- ziplamaKuvveti: Zıplamanın kuvveti ( Zıplamanın maksimum yükseklik değeri)
- ziplamaSayisi: Toplam zıplama sayısı.
- yuvarlama: Eğer true değer verilirse bütün değerleri yumuşatarak tam sayı tipine yuvarlar.
- DORotate(Vector3 istenenDeger, float sure, RotateMode mod) : Objeyi istenen değere döndürür.Quaternion değil Vector3 tipinde değer gerektirir. (Eğer Quaternion verisi kullanmak istiyorsanız, quaternion değişkeninizi degisken.eulerAngles şeklinde kullanabilirsiniz.)
- Modlar (RotateMode):
- Fast (geçerli değer): Dönüş işlemi en kısa yoldan yapılır ve 360 dereceden daha fazla dönüş yapmaz.
- FastBeyond360: Dönüş 360 dereceden daha fazla açı ile yapılır.
- WorldAxisAdd: Verilen değeri world axis( oyundaki eksen) ve gelişmiş kesinlik modu ile transform değerlerine ekler.
- LocalAxisAdd: Verilen değeri local axis( obje ekseni ) değerine ekler.
- Modlar (RotateMode):
- DOLookAt(Vector3 hedef, float sure, AxisConstraint eksenSiniri, Vector3 up) : Objeyi verilen hedefe doğru çevirir.
- eksenSiniri: Rotasyon için geçerli eksen sınırlaması. Varolan hali: AxisConstraits.None.
- Up: Hangi yönün yukarı olduğunu gösteren değişken. Varolan hali: Vector3.up.
- PRO ÖZELLİĞİ – DOSpiral(float sure, Vector3 eksen, SpiralMode mod, float hiz, float frekans, float derinlik, bool yuvarlama)
- Objenin rigidbody pozisyonunu spiral şeklinde hareket ettirir.
- sure: Hareket süresi.
- eksen: Spiral dönüşün yapılacağı eksen. Varolan değer: null.
- mod:Spiral hareketin tipi. Varolan değer: SpiralMode.Expand.
- hiz: Dönüş hızı. Varolan değer: 1
- frekans: Dönüş frekansı. Düşük değerler daha geniş spiraller oluşturur. Varolan değer: 10.
- derinlik: Hareketin dönüş ekseninde ne kadar olacağını belirtir. Varolan değer: 0.
- yuvarlama: True değeri verilirse bütün değerleri yumuşak bir şekilde tam sayı tipine yuvarlar.
Rigidbody2d: Bu kısayollar fizik objelerini düzgün şekilde hareket ettirmek için arkaplanda rigidbody2d bileşeninin MovePosition/MoveRotation methodlarını kullanır.
- DoMove(Vector2 istenendeger, float sure, bool yuvarlama) :Objeyi istenen değere hareket ettirir. Yuvarlama degiskenine True değer verilirse bütün değerleri yumuşak bir şekilde tam sayı değerlere yuvarlar.
- DOMoveX/DOMoveY(float istenenDeger, float sure, bool yuvarlama) : Objeyi seçilen eksendeki pozisyonunu istenen değere getirir. Seçilen eksen dışındaki değerler sabit kalacaktır. Yuvarlama degiskenine True değer verilirse bütün değerleri yumuşak bir şekilde tam sayı değerlere yuvarlar.
- DOJump( Vector2 istenenDeger, float ziplamaKuvveti, int ziplamaSayisi, float sure, bool yuvarlama) : Objenin konumunu verilen konuma götürürken Y ekseninde zıplama efekti uygular. Not: Tweener değil Sequence nesnesi döndürür.
- istenenDeger: Ulaşılacak konum.
- ziplamaKuvveti: Zıplama kuvveti.
- ziplamaSayisi: Toplam zıplama sayısı.
- yuvarlama:True değer verilirse bütün değerleri yumuşak bir şekilde tam sayı değerlere yuvarlar.
- DORotate(float istenenAci, float sure) : Objeyi istenen açıya döndürür. (Dönüş Z ekseninde olacaktır.)
SpriteRenderer:
- DOColor(Color istenenDeger, float sure) : Objenin rengini verilen sürede istenen değere getirir.
- DOFade( float istenenDeger, float sure) : Obje renginin alfa değerini verilen sürede istenen değere getirir.
- DOGradientColor(Gradient istenenDeger, float sure) : Objenin rengini verilen sürede istenen gradient değeri ile değiştirir.
- DOBlendableColor(Color istenenDeger, float sure) : Objenin rengini verilen sürede verilen değere getirir. DOColor fonksiyonundan farklı olarak aynı objeye bu fonksiyondan birden fazla şekilde uygulanabilir ve birbirlerine uyumlu olarak bir değişim sağlarlar.
TrailRenderer:
- DOResize( float baslangicGenisligi, float bitisGenisligi, float sure) : Trailrenderer objesinin başlangıç ve bitiş genişliklerini verilen değerlerle değiştirir.
- DOTime(float istenenDeger, float sure) : Objenin time değişkenini istenen değerle değiştirir.
Transform:
- DOMove(Vector3 gidilecekKonum, float sure, bool yuvarlama): Verilen transform bileşenini kullanarak objeyi gidilecekKonuma istenilen sürede götürür. Eğer yuvarlama True değerinde olursa, atanacak değerleri tam sayıya yuvarlayıp atar.
- DOMoveX/DOMoveY/DOMoveZ(float gidilecekKonum, float sure, bool yuvarlama) : Seçtiğiniz konumun değerini, verdiğiniz süre içerisinde değiştirir.
- DOLocalMove(Vector3 gidilecekKonum, float sure, bool yuvarlama) : Seçili nesneyi Local Eksende hareket ettirir.
- DOLocalMoveX/DOLocalMoveY/DOLocalMoveZ(float gidilecekKonum, float sure, bool yuvarlama) : Seçilen lokal eksendeki konumu verilen zaman içerisinde değiştirir.
- DOJump(Vector3 gidilecekKonum, float ziplamaKuvveti, int ziplamaSayisi, float sure, bool yuvarlama) : Objenin zıplama hareketi yapmasını sağlar. ziplamaKuvveti ile yükseklik belirtilirken, ziplamaSayisi ile verilen konuma gidene kadar kaç defa zıplama hareketi yapacağı belirtilir. Tweener değil, Sequence tipinde değişken döndürür.
- DOLocalJump(Vector3 endValue, float jumpPower, int numJumps, float sure, bool snapping) : DOJump ile aynı çalışır, sadece lokal pozisyon değerlerini kullanır.
- DORotate(Vector3 istenenAci, float sure, RotateMode mode) : Nesnenin yönünü istenenAci değişkenine eşitler. RotateMode sayesinde farklı modlar denenebilir. Standart olarak RotateMode.Fast seçilidir.
- DORotateQuaternion(Quaternion istenilenYon, float sure) : Quaternion tipinde değişken vererek nesne yönünü değiştirmemizi sağlar. Ancak Vector3 tipinde değişken alan DoRotate önerilir.
- DOLocalRotate(Vector3 istenenAci, float sure, RotateMode mode) : Nesne lokal yönünü verilen sürede değiştirmemizi sağlar.
- DOLocalRotateQuaternion(Quaternion istenilenYon, float sure): Nesne lokal yönünü Quaternion tipinde değişkenler değiştirmemizi sağlayan fonksiyondur. DOLocalRotate() kullanılması önerilir.
- DOLookAt(Vector3 konum, float sure, AxisConstraint eksenLimiti= AxisConstraint.None, Vector3 yukariYon= Vector3.up): İstenilen konuma bakılması sağlanır. eksenLimiti ile belirli eksenlerdeki hareketleri önleyebilirsiniz. Ayrıca hesaplamada yukarı yönü de ne olacağını belirtebilirsiniz.
- DOScale(float/Vector3 boyut, float sure): Objenin boyutlarını değiştirmenizi sağlar. Eğer float tipinde boyut verirseniz, bütün eksenlerde aynı büyüklüğe sahip olur. Vector3 kullanarak her eksende ayrı boyutlar verebilirsiniz.
- DOScaleX/DOScaleY/DOScaleZ(float boyut, float sure) : Nesneyi seçtiğiniz eksende istediğiniz sürede boyutlandırmanızı sağlar. Bu sayede sadece tek bir eksende nesneyi büyültüp küçültebilirsiniz.
- DOPunchPosition(Vector3 kuvvet, float sure, int sallantı, float esneklik, bool yuvarlama ): Objeyi, sanki bir yumruğa, darbeye maruz kalmış gibi belirtilen yönde ileri geri hareket ettirir, sallar ve eski konumuna döndürür.
- DOPunchRotation(Vector3 kuvvet, float sure, int sallantı, float esneklik) :DOPunchPosition ile aynı mantıkta çalışır, ancak pozisyon yerine rotasyon, açı değerlerine müdahale eder.
- DOPunchScale(Vector3 kuvvet, float sure, int sallantı, float esneklik) : Objenin ani şekilde büyüyüp küçülmesini sağlayacak bir fonksiyondur.
- DOShakePosition(float sure, float/Vector3 kuvvet, int sallantı, float rastgelelik, bool yuvarla, bool yumuşat): Nesnenin pozisyon değerleriyle oynayarak, bir sallantı efekti oluşturur.
- DOShakeRotation(float sure, float/Vector3 kuvvet, int sallantı, float rastgelelik, bool yuvarla, bool yumuşat) : Objenin rotasyonune, açısına sallama etkisi oluşturur.
- DOShakeScale(float sure, float/Vector3 kuvvet, int sallantı, float rastgelelik, bool yuvarla, bool yumuşat) : Nesnenin boyutlarıyla oynayarak rastgele büyüyüp küçülmeler sağlar. Görsel olarak bir kuvvet uygulanmış jöleyi düşünebilirsiniz.
- DOPath(Vector3[] waypoints, float sure, PathType yolTipi = Linear, PathMode yolModu= Full3D, int hassaslik= 10, Color gizmoColor = null) : Nesnenin Vector3 cinsinde bir dizi olarak verdiğimiz yolu izlemesini sağlar. Verilen konumlar arasında PathType değişkenine göre hareket eder. 3 çeşit yol tipi bulunmaktadır, bunlar Linear (Düz), CatmullRom ( Eğimli), CubicBezier(Eğimli) şeklindedir. hassaslik isimli değişken sayesinde, eğimli tipli yolların ne kadar hassas şekilde hesaplanacağını belirtiyoruz. Yüksek değerler daha yumuşatılmış bir eğim verecektir, ancak standart ayarı çoğu zaman işinizi görecektir.
- DOLocalPath(Vector3[] waypoints, float sure, PathType pathType = Linear , PathMode pathMode = Full3D, int resolution = 10, Color gizmoColor = null) : DOPath fonksiyonuyla aynı şekilde çalışır ancak lokal pozisyon değerlerini kullanarak işlem yapar.
- DOBlendableMoveBy(Vector3 by, float sure, bool yuvarla) : Blendable fonksiyon tipleri sayesinde aynı tipteki fonksiyonları birbiriyle çakışmadan aynı anda çalıştırabiliriz. Bu fonksiyonla da aynı anda birden fazla pozisyon değişikliği sağlayabiliyoruz.
- DOBlendableLocalMoveBy(Vector3 by, float sure, bool yuvarla) : Hareketi lokal pozisyonda yapmamızı sağlıyor.
- DOBlendableRotateBy(Vector3 by, float sure, RotateMode mode) : Birden fazla açı, rotasyon işlemlerini birbirine uyumlu şekilde yapabilmemizi sağlar.
- DOBlendableLocalRotateBy(Vector3 by, float sure, RotateMode mode) : Lokal açı, rotasyon işlemi yapmamızı sağlar.
- DOBlendableScaleBy(Vector3 by, float sure) : Nesnenin boyutlarını, büyüklüğü değiştirmek için kullanabildiğimiz fonksiyon.
Tween : Evet, tween objelerini de tween ettirebiliyoruz. Açıkçası dokümanı okuyup çevirirken ben beklemiyordum haha. Sadece tek bir fonksiyon kullanabiliyoruz.
- DoTimeScale(float yeniZamanSabiti, float sure): Tween objesinin hesaplarda kullandığı zaman sabitini değiştirmemizi sağlar. Normalde Unity’de de yaptığımız Time.timeScale değerini düşünün, aynı şekilde ancak sadece o atama yaptığınız tween için geçerli. Ve bunu aniden değil, yavaşça değiştirerek yapıyor tabii ki.
DOTween Sequence ve Fonksiyonları
Sequence tipi de aslında Tweener objesine benzer şekilde, ancak içerisinde bir sürü tweener bulunuyor. Yani istediğimiz değişiklikleri grup halinde tutup, ister arka arkaya ister eş zamanlı olarak değiştirebiliyoruz.
// Boş halde bir Sequence nesnesi yaratıyoruz
Sequence mySequence = DOTween.Sequence();
//X ekseninde 45 konumuna 1 saniyede gitmesi için bir tween ekliyoruz.
mySequence.Append(transform.DOMoveX(45, 1));
//Y ekseninde 180 dereceyi 1 saniyede dönmesi için bir tween ekliyoruz.
mySequence.Append(transform.DORotate(new Vector3(0,180,0), 1));
// Şu anki haliyle eklediğimiz tween nesneleri sırayla çalışacaktır. İstersek aynı anda çalışmalarını da sağlayabiliriz.
Sequence Fonksiyonları
- Append(Tween tween): Verilen tween objesini sekansın sonuna ekler.
- mySequence.Append(transform.DoMoveX(45,1));
- AppendCallback(TweenCallback callback): Sekansın sonuna bir callback fonksiyon eklemeyi sağlar.
- mySequence.AppendCallback( fonksiyonAdi);
- AppendInterval(float interval): Belirtilen süre kadar beklemeyi sekansa ekler.
- mySequence.AppendInterval(beklenilecekSure);
- Insert(float atPosition, Tween tween) : Sekansa belirtilen süreye bir tween ekler.
- mySequence.Insert(.5f,transform.DoMoveY(3,1));
- InsertCallback(float atPosition, TweenCallback callback) : Sekansta belirtilen zaman bir callback fonksiyonu eklememizi sağlar.
- mySequence.InsertCallback( 1.5f, fonksiyonAdi);
- Join(Tween tween) : Verilen tween objesini sekans içerisinde o an en son bulunan elemanla aynı anda çalışacak şekilde sekansa ekler. Aynı anda birden fazla değişim için kullanabilirsiniz.
- mySequence.Join(transform.DORotate(new Vector3(0,180,0), 1));
- Prepend(Tween tween) : Verilen tween objesini sekansın başına ekler.
- mySequence.Prepend(transform.DOMoveX(45, 1));
- PrependCallback(TweenCallback callback) : Verilen callback fonksiyonu listenin başına ekler.
- mySequence.PrependCallback(MyCallback);
- PrependInterval(float interval) : Sekansın başlangıcına, listenin başına bir bekleme süresi eklemeyi sağlar.
- mySequence.PrependInterval(interval);
Evet, böylece DOTween Doküman Türkçeleştirmesi işinin çoğunluğunu halletmiş olduk. Bazı kısımlar hâlâ eksik farkındayım ama çok uzun bir yazı oldu bu. Onları da ayrı bir yazı içerisinde oluşturabilirim ya da bu yazıyı zamanla güncelleyip buraya ekleyebilirim. Açıkçası hiçbir fikrim yok göreceğiz.
Mükemmelsin, mükemmel.
Ustad devamını getir mutlaka turkçe derli toplu tek senin makalen var. çalışman için teşekkürler.