2016-04-05 21 views
0

Aynı komut dosyasından başka bir yöntemden bir dizeyi çağırmakla ilgili bir sorunum var. C# ile mümkün olup olmadığından emin değilim C# için yeni olduğumu üzgünüm ama bunu Objective-C'de yapmak için kullanmıştım, belki de burada mümkün mü?Başka bir yöntemden dize çağırma

Yani, aşağıdaki kod, bu dizeyi kullanmaya çalıştığım yöntemdir. Bu yöntem oyunda bir mesajın geçip geçmediğini kontrol eder ve kodu çalıştırır.

void HandleMessage(string message, string metadata) 
{ 

    if (message == "UnlockName") 
    { 

    } 
} 

Bu

metin çıktısı boyunca automaticlly olur o (txt.Replace) içeren Şu anda ihtiyaç duyulan dize (txt)

void OutputText(string txt) { 
    //string firstName = lastLoadedLevel.contact.name.Split(new char[] { ' ' })[0]; 
    //txt = txt.Replace("C:", firstName + ":"); 

    txt = txt.Replace("D:", "D's name:"); 

    txt = txt.Replace("[name]", PlayerPrefs.GetString("name")); 

    chat.AddText(txt, delegate { 
     options.gameObject.SetActive(true); 
    }); 
} 

içeren bir yöntemdir. Sadece "UnlockName" mesajı geçtiğinde, sadece değiştirme kodunu yapmak için (void HandleMessage) 'da aynı şeyi yapmak istiyorum. Buradaki 2 yorum satırında kullanmam gerekenler var ancak bunları ilk yöntemde nasıl kullanacağımı bilmiyorum.

Herhangi bir yardım harika olurdu :) Önceden teşekkür ederiz. Belki de bu kadar

+0

Anlamak için daha geniş bir bağlama ihtiyacımız var. Bu yöntemler aynı sınıfa veya ayrı olanlara mı ait? Hangi yöntem önce OutputText'i çağırır? – mwilczynski

+0

'HandleMessage' aranıyor? –

cevap

0

şey:

string HandleMessage(string message, string txt) 
{ 
    if (message == "UnlockName") 
    { 
     string firstName = lastLoadedLevel.contact.name.Split(new char[] { ' ' })[0]; 
     return txt.Replace("C:", firstName + ":"); 
    } 
} 

void OutputText(string txt, string message) 
{ 
    txt = HandleMessage(message, txt); 
    txt = txt.Replace("D:", "D's name:"); 
    txt = txt.Replace("[name]", PlayerPrefs.GetString("name")); 
    chat.AddText(txt, delegate 
     { 
      options.gameObject.SetActive(true); 
     }); 
} 

biraz oynanması ihtiyacım olabilir, ben bir şeyler kullanıyor olabilirsiniz konusunda bazı tahminler yaptı.

Başka bir şey yoksa, dizeleri bir yöntemden geçirip geri döndürmenin bir yolu kavramını vermelidir. Ayrıca, geçersiz imzayı saklayabilir ve ref parametresi olarak manipüle edilecek dizgede geçirebilirsiniz.

İlgili konular