Sayfalar

Translate Blog

2 Aralık 2022 Cuma

Unity Materyal ve Materyal Menüsünde bulunan rengin değiştirilmesi, Change Unity Material and Shader Color

Bir gameObjectin SkinnedMeshRenderer kısmında bulunan materyal dokusunu ve rengini aşağıdaki şekilde değiştirebilirsiniz.


Renk değiştirmek için;

RGB renkler 255,255,255 olarak tanımlanır. Kırmızı isterseniz 255,0,0 yapıp kırmızıyı maksimum yaparsınız. Ama Unity'de renk atamalarında 255 olan değerin kaşılığı 0 ile 1 arasında mesela 255 için 1f (f float anlamına geliyor) veya 127 için 0.5f dir. 

yourGameObject.GetComponent<SkinnedMeshRenderer>().material.color = new Color(0.1f,1f,0);



Elinizdeki RGB kod aracılığı ile dinamik değer oluşturmanız gerekiyorsa oran orantı metodu ile elde edeceğiniz 1/255 değerini RGB kodunuzdaki R ile G ile ve B ile ayrı ayrı çarparak kullanın.

using System.Globalization; //en tepeye eklemeyi unutmayın, küsüratlı float sayı dönüştürmede lazım

string rgb = "255,0,0"; //kırmızı renginizin rgb si olsun # siz

var katsayi = 1/255; //dönüştürme oranımız

string[] renk= rgb.Split(char.Parse(",")); //virgülle parçalara ayırıyoruz, her sayıyı ayrı hesaplamamız lazım.

var newcolor = new Color(float.Parse(renk[0]*katsayi, CultureInfo.InvariantCulture), float.Parse(renk[1]*katsayi,, CultureInfo.InvariantCulture ), float.Parse(renk[2]*katsayi,, CultureInfo.InvariantCulture ));

yourGameObject.GetComponent<SkinnedMeshRenderer>().materials[0].color = newcolor;


Materyal değiştirmek için;

public Material[] NumMat;

//bu diziyi oluşturun ve arayüzden bu diziye kullanmak istediğiniz materyalleri atayın, bir amteryal dizisi olduğu için sadece materyal atayabilirsiniz, resim olmaz. Resimleri önce materyalde kullanın sonra materyali atayın. 1 tane ise 1 tane 10 tane ise 10 tane materyali bu dizi alanına ekleyin. Resimdeki gibi.


Değişikliği yapacak bir fonksiyon yazın ve aşağıdaki kodu için koyun.

var materials = yourGameObject.GetComponentInChildren<SkinnedMeshRenderer>().materials;

materials[0] = NumMat[3];   //burda 3. materyali doku olarak atamışım    

yourGameObject.GetComponent<SkinnedMeshRenderer>().materials = materials;



21 Ekim 2022 Cuma

ESP DevKitC SVG Image

ESP32-DevKitC SVG and IMAGE

ESP32-DevKitC is a low-footprint and entry-level development board that is part of the ESP32 series. This board has a rich peripheral set. The built-in ESP32 pinout is optimized for hassle-free prototyping!


1500x739

To download svg version of ESP32 DevKitC click here.



21 Mart 2022 Pazartesi

Google ile Web Sayfalarına Giriş Yapmanın Tehlikeleri / Dangerous Side of Sign In With Google

Uzun zamandan beri birçok web sayfasına google butonları ile giriş yapıyorum. İlk kez kendi sayfama bu özelliği kazandırmak istedim. 2023'ten itibaren oAuth2 ismini verdikleri sistemi kapatıp yerine Google Credental sistemine geçiş yapmışlar. İşi biliyorsanız bir kaç uğraş ile sitenize ekleyebiliyorsunuz. Gerçi dökümanları eksik biraz.


Kolaylıklarının Yanında Teklikeleri Var

Kendi bilgisayarınızda hesaplarınınz sürekli açıktır ve bir siteye kaydolmamak için yana yakıla google butonu ararsınız varsa çok mutlu olursunuz. Fakat bu apinin kullanımında çok tehlikeli bir sorunu tespit ettik. Siz bir A sitesine google butonu ile giriş yaptığınız zaman o tarayıcıda artık gmail ve benzeri tüm google uygulamalarına da giriş yapmış oluyorsunuz. A sitesinden çıkış yaptınız diyelim ne yazikki google hesabınız o tarayıcıda halen daha açık kalıyor. Tamam kalsın diyorsunuz, fakat...

En Tehlikeli Senaryo

Başka birine ait veya internet kafedeki bir bilgisayardasınız. A sitesine google butonu ile giriş yaptınız. İşiniz bitti çıkış yaptınız ve masadan kalkıp gittiniz. Başka birisi aynı bilgisayar tarayıcı ile epostasına bakmak istedi ve gmail.com adresine girdi. Göreceği ilk  şey giriş yapılmış bir gmail eposta hesabı olacak. Hemde size ait gmail hesabı. Kötü niyetli birisi ise geçmişiniz, bilgileriniz, gmail ile bağlı olan uygulamalarınız (facebook, twitter, instagram vb...) hepsi çalınır.

Ne Yapmalısınız?

Bir geliştirici olarak google hesaplarından çıkış yaptırmanın bir yolu olmadığını araştırarak gördük. Hiçbir Google Api'si logout yaptıramıyor veya yaptırmıyor. Bunun temel nedeni kullanıcılar bir kere giriş yaptığından sürekli onlardan veri almaya devam etmek istemesi.

Peki kullanıcı olarak ne yapmalısınız:

  • Halka açık bir yerde google ile bağlan düğmelerini kullandıysanız muhakkak gmail.com sitesine girerek çıkış yapınız.
  • Veya "https://www.google.com/accounts/Logout" bu adresi ziyaret ederek tarayıcıdaki google hesabınızı kapatın.
Geliştirici iseniz ne yapmalısınız:
  1. Öncelikle google'a bu yöntemin yanlış olduğunu bildiren bir metin yazmalısınız.
  2. İkinci olarak Sign In With Google ile giriş yaptırıyorsanız kullanıcıya bu durumu bildirecek bir arayüz hazırlamalısınız.
  3. Çıkış butonlarınız iki özelliği de kapsamalı
    1. Google hesabım açık kalsın sadece siteden çıkış yap
    2. Hem siteden hem de google hesabımdan çıkış yap
  4. İki hesabı birden kapatmak için web sitenizdeki sessionları temizledikten sonra "https://www.google.com/accounts/Logout" adresine siteyi otomatik yönlendirin. Böylelikle google hesabı da kapanmış olacaktır.