2016-04-05 17 views
0

同じスクリプトから別のメソッドから文字列を呼び出す際に問題があります。私はこれがC#で可能かどうか分かりません 申し訳ありませんC#を初めて使ったのですが、Objective-Cでこれをやっていました。別のメソッドからの文字列の呼び出し

したがって、以下のコードは、その文字列を使用しようとしているメソッドです。 このメソッドは、メッセージがゲームに渡されてコードが実行されたかどうかをチェックします。

void HandleMessage(string message, string metadata) 
{ 

    if (message == "UnlockName") 
    { 

    } 
} 

これは、必要な文字列が含まれている方法(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); 
    }); 
} 

ある今のところは、テキスト出力全体をautomaticlly起こる(txt.Replace)が含まれています。 "UnlockName"というメッセージが渡されたときに、(HandleMessage void)で同じことをして、置換コードを実行したいとします。 2つのコメント行はここで使用する必要がありますが、最初の方法で使用する方法はわかりません。

どのような助けが素晴らしいだろう:) ありがとうございます。多分このような

+0

ここでは、理解するために幅広いコンテキストが必要です。このメソッドは、同じクラスまたは別のクラスに属していますか?どのメソッドが最初にOutputTextを呼び出しますか? – mwilczynski

+0

'HandleMessage'はどこから呼び出されますか? –

答えて

0

何か:

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); 
     }); 
} 

は、いくつかの調整が必要な場合がありますが、私はあなたが物事を使用している場合があります方法についていくつかの推測をしました。

他に何もない場合は、文字列をメソッドの内外に渡す1つの方法の概念を与える必要があります。 voidシグニチャを保持し、refパラメータとして操作する文字列を渡すこともできます。

関連する問題