[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:06.26,Default,,0000,0000,0000,,Bu bölümde; mobil cihazlarda iki parmakla yakınlaştırma/uzaklaştırma gibi standart dokunmatik kontrollerin üzerinden geçeceğiz. Dialogue: 0,0:00:06.91,0:00:12.06,Default,,0000,0000,0000,,Bu dokunmatik kontroller ana kameraya bir script(kod) eklenerek yapılacaktır. Dialogue: 0,0:00:12.29,0:00:15.48,Default,,0000,0000,0000,,Sahnedeki ana kamerayı seçiniz. Dialogue: 0,0:00:15.53,0:00:22.37,Default,,0000,0000,0000,,Ardından,\N"Add Component/New Script" butonlarına basarak kameraya yeni bir C# kodu ekliyoruz. Dialogue: 0,0:00:22.51,0:00:25.43,Default,,0000,0000,0000,,Script'in adını "PinchZoom" koyuyoruz. Dialogue: 0,0:00:25.71,0:00:29.26,Default,,0000,0000,0000,,Bu işlem bittikten sonra,\N"Create and Add" butonuna tıklayınız. Dialogue: 0,0:00:29.42,0:00:33.79,Default,,0000,0000,0000,,Şimdi,\NScript'e çift tıklayarak düzenlemek için açabiliriz. Dialogue: 0,0:00:34.02,0:00:39.05,Default,,0000,0000,0000,,Hadi sınıfın gövdesini temizleyerek kendimize temiz bir yer açalım :) Dialogue: 0,0:00:39.10,0:00:42.41,Default,,0000,0000,0000,,İki parmakla yakınlaştırmanın prensibi şöyledir..\N(Mobil cihazlarda) Dialogue: 0,0:00:42.65,0:00:47.27,Default,,0000,0000,0000,,Öncelikle: iki parmağın da KESİN OLARAK mobil cihazla \Ntemas halinde olduğundan emin olmalıyız. Dialogue: 0,0:00:47.34,0:00:54.49,Default,,0000,0000,0000,,Ardından, ekrana temas halindeki iki parmağın \Ndokunma anındaki karede ve bir önceki karede aralarındaki mesafeyi bilmeliyiz. Dialogue: 0,0:00:54.58,0:01:00.24,Default,,0000,0000,0000,,Eğer ekrana dokunan parmaklar arasındaki mesafe küçüldüyse parmaklar birbirine yaklaşmıştır. Dialogue: 0,0:01:00.26,0:01:02.74,Default,,0000,0000,0000,,Bu durumda UZAKLAŞTIRMA yapmalıyız. Dialogue: 0,0:01:02.79,0:01:08.47,Default,,0000,0000,0000,,Benzer şekilde, parmaklar arasındaki mesafe arttıysa YAKINLAŞTIRMA yapmalıyız. Dialogue: 0,0:01:08.74,0:01:10.86,Default,,0000,0000,0000,,Burada yapmamız gereken ilk şey.. Dialogue: 0,0:01:10.90,0:01:14.19,Default,,0000,0000,0000,,Birkaç public float değişken yazmaktır.\N(public = heryerden erişime açık)\N(float = küsüratlı sayı) Dialogue: 0,0:01:14.25,0:01:18.34,Default,,0000,0000,0000,,Bu değişkenler yakınlaştırma/uzaklaştırma esnasındaki hızı ayarlamamızı sağlayacak. Dialogue: 0,0:01:18.41,0:01:20.23,Default,,0000,0000,0000,,İki değişkene ihtiyacımız var.. Dialogue: 0,0:01:20.36,0:01:26.23,Default,,0000,0000,0000,,..bu şekilde hem Perspective hem Orthographic kameraların hızlarını birbirinden bağımsız olarak ayarlayabiliriz. Dialogue: 0,0:01:26.40,0:01:33.21,Default,,0000,0000,0000,,Bu değişkenleri sırasıyla; \NperspectiveZoomSpeed ve orthoZoomSpeed olarak adlandıralım.\N Dialogue: 0,0:01:33.28,0:01:37.53,Default,,0000,0000,0000,,Aynı zamanda varsayılan değerleri 0,5 olarak verelim. Dialogue: 0,0:01:37.77,0:01:41.70,Default,,0000,0000,0000,,Cihazdaki dokunma girdileri Update döngüsünde zamanla tespit edildiğinden Dialogue: 0,0:01:41.91,0:01:45.91,Default,,0000,0000,0000,,Genellikle en iyisi, \Nbu girdilerle Update fonksiyonunda uğraşmaktır. Dialogue: 0,0:01:46.93,0:01:52.45,Default,,0000,0000,0000,,Ancak, cihaza kesin olarak iki parmak dokunuyorsa birşey yapmak istiyoruz. Dialogue: 0,0:01:52.75,0:01:57.60,Default,,0000,0000,0000,,Bunu "Input.touchCount" özelliğini kullanarak kontrol edebiliriz. Dialogue: 0,0:01:57.75,0:02:01.14,Default,,0000,0000,0000,,Artık cihaza, kesin olarak iki parmağın dokunduğundan emin olduğumuzdan.. Dialogue: 0,0:02:01.19,0:02:04.62,Default,,0000,0000,0000,,..bu dokunmaları kendi değişkenlerimizde depolayabiliriz. Dialogue: 0,0:02:04.75,0:02:09.68,Default,,0000,0000,0000,,Bu şekilde Input sınıfındaki özelliklere sürekli erişmek zorunda kalmayız. Dialogue: 0,0:02:09.87,0:02:15.43,Default,,0000,0000,0000,,Bu dokunma girdilerine Input sınıfındaki GetTouch() fonksiyonuyla ulaşacağız. Dialogue: 0,0:02:15.75,0:02:17.92,Default,,0000,0000,0000,,Sadece iki dokunma girdisi olduğundan, Dialogue: 0,0:02:18.12,0:02:22.70,Default,,0000,0000,0000,,Bu girdiler dokunma girdileri dizisindeki 0. ve 1. elemanlar olmalıdır. Dialogue: 0,0:02:22.89,0:02:30.53,Default,,0000,0000,0000,,Bu dokunmaların birer kopyalarını almak için GetTouch() fonksiyonuna 0 ve 1 değerlerini verebiliriz. Dialogue: 0,0:02:30.75,0:02:32.25,Default,,0000,0000,0000,,Şimdi dokunma bilgileri elimizde olduğuna göre.. Dialogue: 0,0:02:32.28,0:02:36.10,Default,,0000,0000,0000,,..bir önceki karede hangi pozisyonlarda olduklarını bilmeliyiz. Dialogue: 0,0:02:36.30,0:02:42.24,Default,,0000,0000,0000,,Bunu,\Nşu anki pozisyonlarından delta pozisyonlarını çıkararak buluruz. Dialogue: 0,0:02:43.13,0:02:46.30,Default,,0000,0000,0000,,Her bir karede parmaklar arasındaki mesafeyi bulup.. Dialogue: 0,0:02:46.38,0:02:51.34,Default,,0000,0000,0000,,..bu bilgiyi kullanarak yakınlaştırma mı uzaklaştırma mı olacağını kestiririz. Dialogue: 0,0:02:51.52,0:02:54.59,Default,,0000,0000,0000,,Her iki karede de parmaklar arasındaki mesafeyi bulabilmek için.. Dialogue: 0,0:02:54.61,0:02:59.33,Default,,0000,0000,0000,,Bir parmağın pozisyonunu diğerininin pozisyonundan çıkararak bir vektör elde ederiz. Dialogue: 0,0:02:59.43,0:03:03.59,Default,,0000,0000,0000,,Ardından,\NO vektörden, basitçe büyüklük değerini buluruz.\N Dialogue: 0,0:03:03.67,0:03:10.40,Default,,0000,0000,0000,,Bunu bir adımda, parantez içinde vektörleri birbirinden çıkarıp, \Nnokta(.) operatörünü kullanarak yaparız. Dialogue: 0,0:03:10.98,0:03:12.86,Default,,0000,0000,0000,,"Delta" terimini kullanıyoruz çünkü.. Dialogue: 0,0:03:12.88,0:03:16.88,Default,,0000,0000,0000,,..bu terim iki veri parçacığı arasındaki değişimi ifade eder. Dialogue: 0,0:03:17.83,0:03:21.44,Default,,0000,0000,0000,,Her karede parmaklar arasındaki mesafeyi bulduğumuza göre.. Dialogue: 0,0:03:21.50,0:03:24.89,Default,,0000,0000,0000,,Artık o mesafeler arasındaki farkları bulabiliriz. Dialogue: 0,0:03:25.75,0:03:29.16,Default,,0000,0000,0000,,Bu sefer çıkarma işlemindeki sıralama önemli. Dialogue: 0,0:03:29.29,0:03:32.73,Default,,0000,0000,0000,,\NGeçerli(şimdiki) karedeki parmaklar arasındaki mesafeden, Dialogue: 0,0:03:32.84,0:03:35.30,Default,,0000,0000,0000,,bir önceki karedeki mesafeleri çıkarırız. Dialogue: 0,0:03:35.43,0:03:42.53,Default,,0000,0000,0000,,Geçerli karedeki mesafe bir önceki karedeki mesafeden büyükse\Nnegatif bir sonuç verir. Dialogue: 0,0:03:42.55,0:03:45.53,Default,,0000,0000,0000,,Bu da, parmaklar birbirinden uzaklaşıyor demektir. Dialogue: 0,0:03:45.62,0:03:49.45,Default,,0000,0000,0000,,Eğer parmaklar birbirinden uzaklaşıyorsa, yakınlaşma yapmamız gerekir. Dialogue: 0,0:03:49.51,0:03:54.21,Default,,0000,0000,0000,,FieldOfView (Perspektif kamera için) , \NOrtographicSize (Ortographic kamera için) azaltırız. Dialogue: 0,0:03:54.78,0:04:00.73,Default,,0000,0000,0000,,Bu koşullarda ya FieldOfView ya da OrtographicSize özelliklerini küçültmek istediğimiz için.. Dialogue: 0,0:04:00.73,0:04:04.73,Default,,0000,0000,0000,,..iki değeri birbirinden çıkarmanın doğru yolu budur. Dialogue: 0,0:04:05.00,0:04:08.46,Default,,0000,0000,0000,,Kameranın özelliklerini değiştirmeden önce, Dialogue: 0,0:04:08.58,0:04:12.58,Default,,0000,0000,0000,,Kamera Orthographic Mod'da mı yoksa Perspective Mod'da mı bilmemiz gerekiyor. Dialogue: 0,0:04:13.49,0:04:17.49,Default,,0000,0000,0000,,Eğer Orthographic Mod'da ise kameranın orthographicSize değerini.. Dialogue: 0,0:04:17.49,0:04:23.20,Default,,0000,0000,0000,,..mesafedeki değişim ile orthographic yakınlaşma hızını çarparak ayarlayabiliriz. Dialogue: 0,0:04:24.58,0:04:29.82,Default,,0000,0000,0000,,Aynı zamanda, kameramızın orthographicSize değerinin sıfırın altına düşmediğinden emin olmalıyız. Dialogue: 0,0:04:30.13,0:04:33.17,Default,,0000,0000,0000,,Eğer düşerse, görüntü ters döner. \N(isterseniz deneyin :)) Dialogue: 0,0:04:33.29,0:04:34.80,Default,,0000,0000,0000,,Bunu önlemek için.. Dialogue: 0,0:04:34.95,0:04:38.95,Default,,0000,0000,0000,,Mathf sınıfından Max isimli fonksiyon arkadaşımızı kullanacağız. Dialogue: 0,0:04:39.02,0:04:43.02,Default,,0000,0000,0000,,Bu fonksiyon kendisine verilen en büyük parametreyi döndürür. Dialogue: 0,0:04:43.68,0:04:48.54,Default,,0000,0000,0000,,Kameranın orthograpicSize değerini ve 0,1 değerini vereceğiz. Dialogue: 0,0:04:48.98,0:04:52.44,Default,,0000,0000,0000,,Bu şekilde eğer kamera büyüklüğü 0,1 değerinin altına düşerse.. Dialogue: 0,0:04:52.46,0:04:54.86,Default,,0000,0000,0000,,..tekrar 0,1 değerine çekebiliriz. Dialogue: 0,0:04:56.47,0:04:59.60,Default,,0000,0000,0000,,Şimdi, kamera ortografik modda değilse.. Dialogue: 0,0:04:59.65,0:05:01.88,Default,,0000,0000,0000,,..perspektif modda olduğunu biliriz :) Dialogue: 0,0:05:01.94,0:05:05.35,Default,,0000,0000,0000,,bu durumda FieldOfView değerini değiştirmeliyiz. Dialogue: 0,0:05:05.36,0:05:12.26,Default,,0000,0000,0000,,FieldOfView değerini aynı miktarda ama perspectiveZoomSpeed kullanarak ayarlarız. Dialogue: 0,0:05:12.92,0:05:15.73,Default,,0000,0000,0000,,Tabi yine kameranın görüş alanını sınırlamak istiyoruz. Dialogue: 0,0:05:15.80,0:05:16.40,Default,,0000,0000,0000,,Ancak, Dialogue: 0,0:05:16.51,0:05:19.03,Default,,0000,0000,0000,,Görüş alanını bir açı değeri olduğundan, Dialogue: 0,0:05:19.06,0:05:22.30,Default,,0000,0000,0000,,0 ile 180 değerleri arasına çekmeliyiz. Dialogue: 0,0:05:23.16,0:05:27.26,Default,,0000,0000,0000,,Bunu Mathf sınıfından Clamp fonksiyonunu kullanarak yaparız. Dialogue: 0,0:05:28.07,0:05:30.07,Default,,0000,0000,0000,,Bu fonksiyon 3 değer alır. Dialogue: 0,0:05:30.10,0:05:32.26,Default,,0000,0000,0000,,Bir = sınırlamak istediğiniz değer, Dialogue: 0,0:05:32.28,0:05:34.94,Default,,0000,0000,0000,,iki = alabileceği en küçük değer, Dialogue: 0,0:05:34.99,0:05:37.76,Default,,0000,0000,0000,,üç = alabileceği en büyük değer. Dialogue: 0,0:05:38.77,0:05:41.79,Default,,0000,0000,0000,,Bizim sınırlandırmak istediğimiz değer,\Nkameranın görüş alanı Dialogue: 0,0:05:41.81,0:05:46.89,Default,,0000,0000,0000,,0,1 ile 179,9 değerleri arasında olmasını istiyoruz. Dialogue: 0,0:05:48.05,0:05:50.54,Default,,0000,0000,0000,,Kendi yakınlaştırma/uzaklaştırma sisteminizi yaparken, Dialogue: 0,0:05:50.55,0:05:56.45,Default,,0000,0000,0000,,kendinize uygun bir fieldOfView ve ortographicSize değeri seçebilirsiniz. Dialogue: 0,0:05:56.45,0:05:59.60,Default,,0000,0000,0000,,Bu kodda gösterilen limit değerlerini kullanıyoruz.. Dialogue: 0,0:05:59.68,0:06:03.22,Default,,0000,0000,0000,,..çünkü uç koşullarda kabul edilebilir sonuçlar veriyor. Dialogue: 0,0:06:03.36,0:06:07.72,Default,,0000,0000,0000,,Bu kodumuzun sonuydu. Şimdi sıra test etmeye geldi :) Dialogue: 0,0:06:07.80,0:06:12.40,Default,,0000,0000,0000,,Bu noktada,\Ncihazınızın hazır olduğunu ve test için ayarlanmış olduğunu varsayıyoruz. Dialogue: 0,0:06:12.45,0:06:16.45,Default,,0000,0000,0000,,Cihazı nasıl ayarlayacağınızı bilmiyorsanız, cihazın dökümantasyonuna bakın. Dialogue: 0,0:06:16.49,0:06:18.03,Default,,0000,0000,0000,,(Google da "unity android/ios device configuration" diye aratın) Dialogue: 0,0:06:18.06,0:06:22.06,Default,,0000,0000,0000,,artık , File/Bulid Settings 'e tıklayarak projeyi build edebiliriz. Dialogue: 0,0:06:22.08,0:06:24.87,Default,,0000,0000,0000,,üzerinde çalıştığımız sahneyi build'e eklemeliyiz. Dialogue: 0,0:06:25.44,0:06:29.44,Default,,0000,0000,0000,,Eğer hala sahneyi kaydetmediyseniz şimdi kaydedin. Dialogue: 0,0:06:29.60,0:06:32.29,Default,,0000,0000,0000,,Ardından Build And Run butonuna tıklayın. Dialogue: 0,0:06:32.65,0:06:36.66,Default,,0000,0000,0000,,Gördüğünüz gibi parmaklarımızı birbirlerine doğru yaklaştırdığımızda.. Dialogue: 0,0:06:36.69,0:06:37.55,Default,,0000,0000,0000,,..kamera uzaklaşıyor. Dialogue: 0,0:06:37.58,0:06:40.72,Default,,0000,0000,0000,,Parmaklarımız birbirlerinden uzaklaştığında, kamera yaklaşıyor.