Önce ki derse buradan erişebilirsiniz.
Geçen dersimizde hesap makinemize başlamış ancak script gibi logic kısımlarını yapmamıştık. Bu hafta kalan bölme ve çarpma işlemleri için gereken butonları ve projemizin arka tarafında kalan logic kısmını yapacağız.
Öncelikle boş bir oyun objesi oluşturuyoruz. Bu oyun objemiz oluşturduğumuz script’i tutacak ve inputlarımızı/butonlarımızı arka taraftaki kodlarla bağlamamıza yardımcı olacak.
Oyun objemize calculator adını verelim.
Öncelikle gereken diğer iki butonumuz olan çarpma ve bölme butonlarımızı oluşturalım.
Bunun için Sonuç : 0 yazısını y koordinatını -30 yaparak aşağı kaydırıyoruz ki diğer butonlarımıza yer açılsın.
Daha sonra ister geçen derste anlattığım gibi duplicate ederek istersek de butonları yeniden oluşturarak bölme ve çarpma butonlarını oluşturuyoruz. Çarpma butonumuz diğer butonlara nazaran biraz farklı oluyor.
Üstteki gibi çarpma işlemimizin font’unu 18 ve aligment’ını aşağıya yaslı bir şekilde ayarlarsak görüntümüz aşağıdaki gibi değişmiş oluyor.
Logic kısmı için script klasörümüze (yoksa Create > Folder) bir c# script‘i oluşturuyoruz. Ben scriptime calculator ismini verdim.
Oluşturduğumuz Calculator scriptini çift tıklayarak açıyoruz.
Projemizde oluşturmuş olduğumuz input alanlarına erişebilmemiz için iki adet Input Field oluşturuyoruz ve bu field’ları kullanabilmek için UnityEngine.UI‘ı projemize import ediyoruz.
Oluşturduğumuz bu input field‘ları projemizdeki inputlarla eşleştirebilmek için öncelikle script’imizi oyun objemizin içine sürükle bırak yaparak yerleştiriyoruz ve input alanlarımızı da aynı şekilde gereken kısımlarla eşleştiriyoruz.
Şimdi de cevabımız olan result textini scriptimiz ile bağlayabilmek için calculator scripti içinde bir text oluşturalım.
Bu text’imizi de az önce sürükle bırak yöntemiyle bağladığımız inputlarımız gibi bağlıyoruz.
Programımız başladığında result text‘imizin 0‘a eşit olmasını istiyorsak void Start() metodumuzun içinde text’imizi 0’a eşitliyoruz.
Şimdi de butonlarımızın metodlarını yazmaya geçeceğiz. Add butonundan başlarsak eğer, inputlarımızı integer bir sayıya dönüştürüp, toplama işlemini yaptıktan sonra sonuç için tekrar text olan result‘umuza aşağıdaki gibi eşitliyoruz.
Diğer metodlarımızı da aşağıdaki gibi yazıyoruz.
Peki bu metodlarımızı nasıl butonlarımız ile eşleştireceğiz? Butonumuza tıklayıp aşağı inerek OnClick() kısmına metodumuzu aşağıdaki gibi ekliyoruz.
Diğer butonlarımızı da yukarıdaki gibi oluşturduğumuz metodlarla bağlıyoruz.
Ancak programımız şuan çalıştırdığımızda bölme yaparken cevap virgüllü olduğunda sonuç döndürmüyor.
Bunu çözmek için ise öncelikle number1 ve number2 input alanlarımızı decimal type‘a atıyoruz.
Daha sonra script’imizin virgüllü numaralar ile başa çıkabilmesi için int olarak tanımladığımız tüm alanları float’a dönüştürüyoruz.
Eğer bölme işleminde çıkan sonucumuzun virgülden sonraki kısmının çok uzun olmasını istemiyorsak -mesela virgülden sonra sadece iki basamağın görünmesi yeterliyse- ToString kısmının içine #.00 şeklinde bir kısıtlama getiriyoruz.
Buraya kadar her şeyi yaptıysak projemizin sorunsuz bir şekilde çalışıyor olması gerekiyor.
Herhangi bir hata alıyorsanız ya da anlayamadıysanız yorum olarak belirtebilirsiniz.
Bu derslik bu kadar bir daha ki dersimizde görüşmek üzere. 🙂