我在同一个脚本中从另一个方法调用字符串时遇到问题。我不确定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 );
} );
}
现在它包含(txt.Replace),它在整个文本输出中自动发生。 我想在(void HandleMessage)中执行相同操作,仅在传递消息“UnlockName”时执行替换代码。 这里的两条注释行是我需要使用的,但我不知道如何在第一种方法中使用它们。
任何帮助都会很棒:) 提前谢谢。
答案 0 :(得分: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);
});
}
可能需要一些调整,我对你如何使用东西做了一些猜测。
如果不出意外,它应该为您提供一种方法来传递字符串进出方法的概念。您还可以保留void签名并传入要操作的字符串作为ref参数。