为什么这个 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){}