Unity Dil Ayarlarını Tüm Sahnelere Uygulamak

Katılım
24 Ağustos 2017
Mesajlar
2.823
Makaleler
1
Çözümler
16
Yeniden merhaba. Oyunum için menüye İngilizce dil eklemiştim. Ancak sadece menü için geçerli. Ben durdurma paneline, ölüm paneline de dil eklemek istiyorum. (yani diğer sahnelere de) @Predator Titan bir önceki dil konusunda yine bu soruyu sordum fakat son mesajla birleştiği için bildirim gelmedi sanırım.

Kodların son halleri;
dilAktif.cs
dil.cs
 
Çözüm
DİL.CS İÇİN >

Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class dil : MonoBehaviour
{

    public int Menüdeger = 0;
    public int Durdurmadeger = 0;
    public int Olmedeger = 0;

    public bool ingilizce;
    public bool türkce;

    public bool durduma_ingilizce;
    public bool durdurma_türkce;

    public bool ölme_ingilizce;
    public bool ölme_türkce;


 
    void Start()
    {
        //Oyunu, oyun motorunu(unity i yani) kapatsanız dâhi yaptığınız, seçtiğiniz son değişiklikleri kaydeden kod aşağıdadır.
        Menüdeger = PlayerPrefs.GetInt("Mdeger");
        Durdurmadeger = PlayerPrefs.GetInt("Ddeger");
        Olmedeger = PlayerPrefs.GetInt("Odeger");
    }
    void Update()
    {
        if (Menüdeger == 1)
        {
          
            ingilizce = true;
            türkce = false;
        }
        if (Menüdeger == 2)
        {
      
            türkce = true;
            ingilizce = false;
        }


        if (Durdurmadeger == 1)
        {
      
            durduma_ingilizce = true;
            durdurma_türkce = false;
        }
        if (Durdurmadeger == 2)
        {
            
            durdurma_türkce = true;
            durduma_ingilizce = false;
        }


        if (Olmedeger == 1)
        {
            
            ölme_ingilizce = true;
            ölme_türkce = false;
        }
        if (Olmedeger == 2)
        {
        
            ölme_türkce = true;
            ölme_ingilizce = false;
        }
      
    }

    public void IngilizceButton()
    {
        Menüdeger = 1;
        PlayerPrefs.SetInt("Mdeger", Menüdeger);
    }
    public void TurkceButton()
    {
        Menüdeger = 2;
        PlayerPrefs.SetInt("Mdeger", Menüdeger);
    }

    //Durdurma sahnesi için bu aşağı da ki komutu, stop/durdurma tuşuna tanımlayın aynı yukarı da menü ye yaptığınız gibi.
    public void DurdurmaIngilizceButton()
    {
        Durdurmadeger = 1;
        PlayerPrefs.SetInt("Ddeger", Durdurmadeger);
    }
    public void DurdurmaTurkceButton()
    {
        Durdurmadeger = 2;
        PlayerPrefs.SetInt("Ddeger", Durdurmadeger);
    }


    //Ölme sahnesi için bu aşağı da ki komutu, ölme/yeniden doğma sanhesi tuşuna tanımlayın aynı yukarı da menü ye yaptığınız gibi.
    public void OlmeIngilizceButton()
    {
        Olmedeger = 1;
        PlayerPrefs.SetInt("Odeger", Olmedeger);
    }
    public void OlmeTurkceButton()
    {
        Olmedeger = 2;
        PlayerPrefs.SetInt("Odeger", Olmedeger);
    }


}

dilAktif.cs İÇİN >
Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class dilAktif : MonoBehaviour {

    dil DenemeS;

    public GameObject DenemeCsObj;

    //Ana menü için
    public Text bolumSecText;
    public Text hikayeModText;
    public Text ozellistirmeText;
    public Text nasilOynanirText;
    public Text cıkText;

    public Text nasilText1;
    public Text nasilKontrollerText;
    public Text nasilDusmanlarTExt;

    void Start()
    {

        DenemeS = DenemeCsObj.GetComponent<dil>();

    }

    void Update()
    {
        if (DenemeS.ingilizce == true)
        {
            //Menü için
            bolumSecText.text = "Level Select";
            ozellistirmeText.text = "Customize (Coming Very Soon)";
            hikayeModText.text = "Story Mode (Coming Very Soon)";
            nasilOynanirText.text = "How To Play";
            cıkText.text = "Quit";
            //Nasıl için
            nasilText1.text = "How to play? You are welcome to play a game that adds a dimension to maze games. In this game, there are chapters in many places from the biggest cities to the Moon, from the Moon to the depths of the ocean.In these chapters, your aim is to hit the obstacles. How will you do that? Then lets come check it out.";
            nasilKontrollerText.text = "Controls; To control your character, you need to use the analog bar on the bottom left and the jump button on the bottom right.";
        }

        if (DenemeS.türkce == true)
        {
            //Menü için
            bolumSecText.text = "Bölüm Seç";
            ozellistirmeText.text = "Özelleştirme (Çok Yakında)";
            hikayeModText.text = "Hikaye Modu (Çok Yakında)";
            nasilOynanirText.text = "Nasıl Oynanır";
            cıkText.text = "Çık";
            //Nasıl için
            nasilText1.text = "Nasıl Oynanır? Labirent oyunlarına ayrı bir boyut katan oyunumuza hoşgeldiniz. Bu oyunda, en büyük şehirlerden, Aya, Aydan okyanusların derinliklerine kadar bir çok yerde geçen bölümler bulunmakta. Bu bölümlerde amacınız engellere çarpmayıp çıkışa ulaşmak.Bunu nasıl mı yapacaksınız? O zaman gelelim kontrollere.";
            nasilKontrollerText.text = "Kontroller; Karakterinizi kontrol etmek için sol alt taraftaki analog çubuğu ve sağ alt taraftaki zıplama butonunu kullanmanız gerekmekte.";
        }

        //DURDURMA EKRANI İÇİN AYARLAR-------------------------------------------------------
        if (DenemeS.durduma_ingilizce == true)
        {
         // BURAYA GİRİLECEK TEXT LERİ SİZİN AYARLAMANIZ LAZIM, NORMAL YUKARIDAN TEXT İLE DURDURMA EKRANINDA Kİ TEXTLERİ TANIMLAYIN   
        }

        if (DenemeS.durdurma_türkce == true)
        {
          // BURAYA GİRİLECEK TEXT LERİ SİZİN AYARLAMANIZ LAZIM, NORMAL YUKARIDAN TEXT İLE DURDURMA EKRANINDA Kİ TEXTLERİ TANIMLAYIN
        }


        //ÖLME/DEATH/YENİDEN BAŞLAMA EKRANI İÇİN AYARLAR-------------------------------------------------------
        if (DenemeS.ölme_ingilizce == true)
        {
            // BURAYA GİRİLECEK TEXT LERİ SİZİN AYARLAMANIZ LAZIM, NORMAL YUKARIDAN TEXT İLE ÖLME EKRANINDA Kİ TEXTLERİ TANIMLAYIN   
        }

        if (DenemeS.ölme_türkce == true)
        {
            // BURAYA GİRİLECEK TEXT LERİ SİZİN AYARLAMANIZ LAZIM, NORMAL YUKARIDAN TEXT İLE ÖLME EKRANINDA Kİ TEXTLERİ TANIMLAYIN
        }

    }

}

Paylaştığım kodları direk siz başta belirtiğim script adına göre Ctrl+c - Ctrl+V yaparak işlemi halledin. Siz eski kodunuzun içinde ki bütün her şeyi silin ve direk yapıştırın yani.

Sorun çıkarsa mümkün ise Ekran görüntüsü dahilinde + devrik cümle kurmadan açıklarsanız sevinirim :)
Sizce bu oyunu tamamlamalı mıyım? Veya tamamladıktan sonra ne yapmalıyım? Her tamamladığım oyunun ardından bir yenisini mi yapayım? Yoksa eski oyunlarımın üzerine düşüp onları mı geliştirmeliyim?
Yeni amaçlar güdün, bir projeden diğerine atlayın, işin zevkine bakın. Şuan ne yapmak istiyorsanız onu tasarlayın daha mutlu olursunuz ;)
 
Attığınız dosyaları nasıl açacağım? Direkt bir sahne seçip başlattım Unity'i, sahnelerde bozuklular oldu. Bazı Prefablar bulunamadı. Acaba oyunun eski dosyaları ile yenilerini değiştirmem mi gerekiyor kurulu olduğu yerde?
 
Attığınız dosyaları nasıl açacağım? Direkt bir sahne seçip başlattım Unity'i, sahnelerde bozuklular oldu. Bazı Prefablar bulunamadı. Acaba oyunun eski dosyaları ile yenilerini değiştirmem mi gerekiyor kurulu olduğu yerde?
RAR'dan çıkar, Unity'i başlat. Unity den Open butonu yardımı ile oyun dosyasının klasörünü seçip Unity nin projeyi derlemesini bekleyin. Direk sahne başlatma ile olmuyor.
 
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı