为什么这个 IF 语句在 Unity 中不起作用?
Why wont this IF statement work in Unity?
好的,我有一个问题。我正在使用 IF 语句。它似乎不像它应该的那样运行。没有||它工作正常条件,但带有 ||它似乎只是将文本拉到下面而不是 运行 ELSE...
var fateText : UI.Text;
var inputText : UI.Text;
function fateBall () {
if(inputText.text == "illuminati"||"Illuminati"){
fateText.text = "We run the entire world. Join us!";
}else{
var myRandomString : String = RandomWordString(1);
fateText.text = myRandomString;
}
}
如果我删除 ||"Illuminati" 它工作得很好......但像这样它将 fateText.text 分配给 "We run the entire world." 而不是 myRandomString
编辑报告:好吧,.ToLower() 工作得很好,现在我 运行 遇到了一个问题,当我添加多个 IF 时,它只是绕过 IF,只是 运行s ELSE ...有什么想法吗?
function fateBall () {
if(inputText.text.ToLower() == "illuminati"){
fateText.text = "We run the entire world. Join us!";}
if(inputText.text.ToLower() == "satan"){
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";}
if(inputText.text.ToLower() == "devil"){
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";}
if(inputText.text.ToLower() == "lucifer"){
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";}
else{
var myRandomString : String = RandomWordString(1);
fateText.text = myRandomString;
}
}
条件必须是:
if(inputText.text == "illuminati" || inputText.text == "Illuminati")
否则,您可以将所有文本设置为case-independant :
if(inputText.text.ToLower() == "illuminati")
一个更好的比较字符串的方法是使用 Equals
函数(C# only though)
if( String.Equals( inputText.text, "illuminati", System.StringComparison.InvariantCultureIgnoreCase)
进一步编辑您的编辑:
string lowerText = inputText.text.ToLower() ;
if(lowerText == "illuminati")
{
fateText.text = "We run the entire world. Join us!";
}
else if(lowerText == "satan")
{
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";
}
else if(lowerText == "devil")
{
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";
}
else if(lowerText == "lucifer")
{
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";
}
else
{
var myRandomString : String = RandomWordString(1);
fateText.text = myRandomString;
}
尝试更改以下条件:
inputText.text == "illuminati"||"Illuminati"
为此:
inputText.text == "illuminati"|| inputText.text =="Illuminati"
我不认为你可以像那样链接条件。
此外,您可能只想使用小写函数来简化您的条件。所以我相信你可以改为执行以下操作。
if(inputText.text.ToLower()=="illuminati")
如果您想在一个 if 语句中检查多个条件,请这样做:
if (var1 == condition1 || var2 == condition2){}
这将检查是否有一个 return 为真,但您也可以使用以下方法检查多个语句是否为真:
if (var1 == condition1 && var2 == condition2){}
好的,我有一个问题。我正在使用 IF 语句。它似乎不像它应该的那样运行。没有||它工作正常条件,但带有 ||它似乎只是将文本拉到下面而不是 运行 ELSE...
var fateText : UI.Text;
var inputText : UI.Text;
function fateBall () {
if(inputText.text == "illuminati"||"Illuminati"){
fateText.text = "We run the entire world. Join us!";
}else{
var myRandomString : String = RandomWordString(1);
fateText.text = myRandomString;
}
}
如果我删除 ||"Illuminati" 它工作得很好......但像这样它将 fateText.text 分配给 "We run the entire world." 而不是 myRandomString
编辑报告:好吧,.ToLower() 工作得很好,现在我 运行 遇到了一个问题,当我添加多个 IF 时,它只是绕过 IF,只是 运行s ELSE ...有什么想法吗?
function fateBall () {
if(inputText.text.ToLower() == "illuminati"){
fateText.text = "We run the entire world. Join us!";}
if(inputText.text.ToLower() == "satan"){
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";}
if(inputText.text.ToLower() == "devil"){
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";}
if(inputText.text.ToLower() == "lucifer"){
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";}
else{
var myRandomString : String = RandomWordString(1);
fateText.text = myRandomString;
}
}
条件必须是:
if(inputText.text == "illuminati" || inputText.text == "Illuminati")
否则,您可以将所有文本设置为case-independant :
if(inputText.text.ToLower() == "illuminati")
一个更好的比较字符串的方法是使用 Equals
函数(C# only though)
if( String.Equals( inputText.text, "illuminati", System.StringComparison.InvariantCultureIgnoreCase)
进一步编辑您的编辑:
string lowerText = inputText.text.ToLower() ;
if(lowerText == "illuminati")
{
fateText.text = "We run the entire world. Join us!";
}
else if(lowerText == "satan")
{
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";
}
else if(lowerText == "devil")
{
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";
}
else if(lowerText == "lucifer")
{
fateText.text = "Lucifer is the Light Bringer. He leads us against God!";
}
else
{
var myRandomString : String = RandomWordString(1);
fateText.text = myRandomString;
}
尝试更改以下条件:
inputText.text == "illuminati"||"Illuminati"
为此:
inputText.text == "illuminati"|| inputText.text =="Illuminati"
我不认为你可以像那样链接条件。
此外,您可能只想使用小写函数来简化您的条件。所以我相信你可以改为执行以下操作。
if(inputText.text.ToLower()=="illuminati")
如果您想在一个 if 语句中检查多个条件,请这样做:
if (var1 == condition1 || var2 == condition2){}
这将检查是否有一个 return 为真,但您也可以使用以下方法检查多个语句是否为真:
if (var1 == condition1 && var2 == condition2){}