TextMeshPro (TMP), Unity’deki metin bileşenlerinin daha keskin, detaylı ve etkileyici görünmesini sağlar. Standart Unity Text bileşenine kıyasla çok daha geniş özelliklere sahiptir. TextMeshPro, özellikle yüksek çözünürlüklü ve özelleştirilebilir metinlerle çalışmak için geliştirilmiş bir sistemdir ve metinleri grafiksel olarak çok daha etkileyici hale getirir.
TextMeshPro, hem UI (2D) hem de 3D metin olarak kullanılabilir. 2D UI metinleri için kullanıcı arayüzünde (menüler, butonlar gibi) yüksek kaliteli metin oluşturmak için idealdir. 3D metinlerde ise sahne içindeki 3D nesnelerin üzerinde metin göstermek için kullanılır.
1. TextMeshPro Menüsüne Nasıl Ulaşılır?
TextMeshPro bileşenine Unity’de şu şekilde ulaşabilirsiniz:
- UI Panelinde TextMeshPro UI Ekleme:
- Hierarchy panelinde sağ tıklayın, UI > Text – TextMeshPro seçeneğini seçin. Bu seçenek, sahneye bir TextMeshPro UI bileşeni ekler. Bu metin, Unity’nin UI sistemine dahildir ve 2D kullanıcı arayüzleri için kullanılır.
- 3D Nesne Olarak TextMeshPro Ekleme:
- Hierarchy panelinde sağ tıklayın, 3D Object > Text – TextMeshPro seçeneğini seçin. Bu seçenek, sahneye 3D nesne olarak bir TextMeshPro bileşeni ekler. Bu tür metinler, sahnede 3D nesne gibi davranır ve kamera perspektifine göre boyutları değişir.
- Inspector Panelinde TextMeshPro Özelliklerini Düzenleme:
- TextMeshPro bileşenini seçtiğinizde, sağ tarafta yer alan Inspector panelinde TextMeshPro’nun tüm özelliklerini görebilir ve ayarlayabilirsiniz.
2. TextMeshPro Çeşitleri
TextMeshPro, kullanım alanına göre iki farklı türde bulunur:
- TextMeshPro – UI: UI (kullanıcı arayüzü) elemanları için geliştirilmiş bir metin bileşenidir. 2D UI elemanlarıyla çalışırken yüksek çözünürlüklü ve ayrıntılı metinler oluşturur. Button, Panel gibi arayüz bileşenleri ile uyumludur.
- TextMeshPro – 3D: 3D ortamda kullanılan bir metin bileşenidir. 3D sahnede metinleri nesneler gibi ekranda konumlandırabilir ve döndürebilirsiniz. Özellikle sahnede sabit olmayan metinler için tercih edilir.
3. TextMeshPro Özellikleri ve Ayrıntılı Açıklamaları
TextMeshPro’nun pek çok özelliği vardır ve metinlerin görünümünü, renklerini, gölgelendirmesini, hizalamasını ve daha birçok detayı ayarlamanıza olanak tanır. Aşağıdaki tabloda TextMeshPro bileşeninin önemli özelliklerini, ne işe yaradıklarını ve nasıl kullanıldıklarını ayrıntılı olarak bulabilirsiniz.
Özellik | Açıklama | Kullanım Durumları | Programatik Erişim |
---|---|---|---|
Text | Görüntülenmesini istediğiniz metni belirler. Bu alan, metnin temel içeriğini içerir. | Tüm metin elemanlarında kullanılır. | textMeshPro.text = "Merhaba"; |
Font Asset | Metin için kullanılan fontu belirler. TextMeshPro fontları özel bir format kullanır ve TMP_FontAsset olarak eklenir. | Metin stilini değiştirmek istediğinizde kullanılır. | textMeshPro.font = myFontAsset; |
Font Style | Metin stilini belirler; Normal, Bold, Italic, Underline gibi seçenekler içerir. | Farklı metin stilleri ile vurgulama yapmak için. | textMeshPro.fontStyle = FontStyles.Bold; |
Font Size | Metnin boyutunu ayarlar. Genellikle UI ve 3D metinler için kullanılır. | Küçük veya büyük yazı boyutları gerektiğinde. | textMeshPro.fontSize = 24; |
Alignment | Metnin hizalamasını belirler; Left, Center, Right gibi seçenekler bulunur. | Metnin sola, sağa veya ortaya hizalanması gerektiğinde. | textMeshPro.alignment = TextAlignmentOptions.Center; |
Color | Metnin rengini ayarlar. | Öne çıkması gereken veya belirli bir tema rengine uyacak metinler için. | textMeshPro.color = Color.red; |
Gradient Color | Metne renk geçişi (gradient) ekler. TextMeshPro’nun yalnızca belirli versiyonlarında mevcuttur. | Renk geçişleri ile daha ilgi çekici metinler için. | textMeshPro.colorGradient = myGradient; |
Outline | Metin etrafında bir kenarlık ekler. | Metni daha belirgin hale getirmek için kenarlık eklemek gerektiğinde. | textMeshPro.outlineWidth = 0.1f; |
Outline Color | Kenarlık rengini belirler. | Kenarlığın görünümünü özelleştirmek için. | textMeshPro.outlineColor = Color.black; |
Character Spacing | Karakterler arasındaki boşluğu ayarlar. | Daha sıkı veya daha geniş metinler için karakter aralığını ayarlamak için. | textMeshPro.characterSpacing = 1.0f; |
Line Spacing | Satırlar arasındaki boşluğu ayarlar. | Metin paragrafları için satır boşluğunu özelleştirmek gerektiğinde. | textMeshPro.lineSpacing = 1.2f; |
Word Spacing | Kelimeler arasındaki boşluğu ayarlar. | Geniş boşluklu veya daha sıkışık metinler için. | textMeshPro.wordSpacing = 1.5f; |
Enable Auto-Sizing | Font boyutunun otomatik olarak ayarlanmasını sağlar. | Metnin boyutunu otomatik olarak kutuya sığdırmak gerektiğinde. | textMeshPro.enableAutoSizing = true; |
Max Visible Characters | Görüntülenebilecek maksimum karakter sayısını belirler. | Belirli bir karakter sayısı sınırlaması yapmak istediğinizde. | textMeshPro.maxVisibleCharacters = 50; |
Rich Text | Zengin metin (bold, italic gibi) formatlarını destekler. | Metinde stil değişiklikleri yapmak gerektiğinde. | textMeshPro.richText = true; |
Raycast Target | Metnin raycast hedefi olup olmadığını belirler. UI etkileşimleri için önemlidir. | Metin üzerinde tıklama veya etkileşim yapılacaksa aktif edilir. | textMeshPro.raycastTarget = true; |
TextMeshPro Özelliklerine Programatik Erişim
TextMeshPro bileşenine C# kodu ile erişip özelliklerini değiştirebilirsiniz. Aşağıda her bir TextMeshPro özelliğine nasıl erişileceğini gösteren bir tablo hazırladım:
Özellik | Kod ile Erişim Örneği | Açıklama |
---|---|---|
Text | textMeshPro.text = "Merhaba"; | Metni ayarlar. |
Font Asset | textMeshPro.font = myFontAsset; | Fontu değiştirir. |
Font Style | textMeshPro.fontStyle = FontStyles.Bold; | Yazı stilini ayarlar. |
Font Size | textMeshPro.fontSize = 24; | Yazı boyutunu ayarlar. |
Alignment | textMeshPro.alignment = TextAlignmentOptions.Center; | Metni ortalar. |
Color | textMeshPro.color = Color.red; | Metin rengini kırmızı yapar. |
Gradient Color | textMeshPro.colorGradient = myGradient; | Metne renk geçişi ekler. |
Outline | textMeshPro.outlineWidth = 0.1f; | Kenarlık ekler. |
Outline Color | textMeshPro.outlineColor = Color.black; | Kenarlık rengini siyah yapar. |
Character Spacing | textMeshPro.characterSpacing = 1.0f; | Karakterler arasındaki boşluğu ayarlar. |
Line Spacing | textMeshPro.lineSpacing = 1.2f; | Satır aralığını ayarlar. |
Word Spacing | textMeshPro.wordSpacing = 1.5f; | Kelimeler arasındaki boşluğu ayarlar. |
Enable Auto-Sizing | textMeshPro.enableAutoSizing = true; | Yazı boyutunu otomatik ayarlama. |
Max Visible Characters | textMeshPro.maxVisibleCharacters = 50; | Görüntülenebilecek maksimum karakter sayısını belirler. |
Rich Text | textMeshPro.richText = true; | Zengin metin formatlarını aktif eder. |
Raycast Target | textMeshPro.raycastTarget = true; | Metnin raycast hedefi olup olmadığını belirler. |
4. TextMeshPro Özelliklerinin Değer Aralıkları ve Kullanım Durumları
Aşağıdaki tabloda TextMeshPro özelliklerinin değer aralıklarını ve hangi durumlarda hangi değerlerin kullanılabileceğini detaylandırdım:
Özellik | Değer Aralığı / Seçenekler | Önerilen Değerler | Kullanım Durumları |
---|---|---|---|
Font Size | 1 – 500+ (Projeye göre değişir) | 12-24 (UI için), 36+ (Başlıklar için) | Küçük metinler için küçük, başlıklar için büyük boyutlar tercih edilir. |
Alignment | Left, Center, Right, Justified | Left (Genel), Center (Başlıklar) | Paragraf veya uzun metinlerde sol, başlıklar için merkez hizalama. |
Outline Width | 0 – 1 | 0.1 – 0.5 | Hafif kenarlık için düşük, belirgin kenarlık için yüksek değer. |
Character Spacing | 0 – ∞ | 0.5 – 1.5 | Geniş boşluklu veya sıkışık metinler için. |
Line Spacing | 0 – ∞ | 1.0 – 1.5 | Metin paragrafları veya başlıklar için. |
Word Spacing | 0 – ∞ | 1.0 – 1.5 | Geniş veya sık kelime boşlukları için. |
Max Visible Characters | 0 – ∞ | İhtiyaca göre | Sınırlı metin gösterimi yapmak gerektiğinde. |
5. TextMeshPro Kullanım Alanları ve Dikkat Edilecekler
Kullanım Alanları
- UI Metinleri: TextMeshPro – UI, kullanıcı arayüzlerinde (menüler, butonlar) yüksek kaliteli metinler oluşturmak için kullanılır.
- 3D Metinler: TextMeshPro – 3D, sahne içinde 3D nesneler üzerinde metin göstermek için idealdir, örneğin karakterlerin isimleri veya bilgi etiketleri gibi.
- Etiketler ve Bilgilendirme Panelleri: Oyun içinde bilgi panelleri veya uyarı mesajları için kullanılabilir.
Dikkat Edilmesi Gerekenler
- Font ve Boyut Seçimi: Çok küçük fontlar okunması zor olabilir, çok büyük fontlar ise UI tasarımını bozabilir.
- Auto-Sizing Kullanımı: Otomatik boyutlandırma özelliği dikkatli kullanılmalıdır. Metinler çok küçük veya çok büyük olabilir.
- Kenarlık ve Gölge Ayarları: Kenarlık ve gölge özellikleri abartılı kullanılırsa metinlerin okunabilirliğini düşürebilir.
- Raycast Target: Gereksiz raycast hedefleri performansı düşürebilir, raycast sadece tıklanabilir metinlerde kullanılmalıdır.
Uygulanmaması Gereken Nesneler
- Statik Arka Planlar veya Grafikler: Arka planda sabit görsellerde kullanılmaz.
- Performans Kısıtlı Projeler: Çok fazla TextMeshPro bileşeni, mobil cihazlarda performansı etkileyebilir.
Özet
Dikkat Edilecek Noktalar: Auto-Sizing, kenarlık ayarları, raycast kullanımı performans açısından önemlidir.
TextMeshPro Ekleme: UI > Text – TextMeshPro veya 3D Object > Text – TextMeshPro yoluyla eklenir.
Çeşitleri: TextMeshPro – UI (2D arayüz) ve TextMeshPro – 3D (sahne içi 3D metin).
Özellikler ve Kullanımı: Text, Font Size, Color, Outline, Gradient gibi birçok özelliği bulunur.
Kullanım Alanları: UI metinleri, 3D etiketler, bilgi panelleri.