bool isItem(TextAsset f)总是返回false

时间:2016-11-18 10:14:53

标签: c# unity3d

以下脚本是我开始使用的内容,它采用TextAsset并拆分行并将其与各种字符串进行比较。但是我的检查功能只返回false。有什么重要的我不知道,Unity没有抛出任何错误,所以我不知道如何解决这个问题。

    internal sealed class Checker {
        private string AssetType(TextAsset fileToBeChecked) {
            string[] line = fileToBeChecked.text.Split (new char[] { '\n' });
            return line [0];
        }
        public bool isItem(TextAsset file) {
            string type = AssetType (file).ToLower ();
            if (type == "helmet" || type == "cuirass" || type == "gauntlets" || type == "gloves" || type == "boots" || type == "leggings" || type == "shield" || type == "robes" || type == "shirt" || type == "pants" || type == "shoes" || type == "hood" || type == "staff" || type == "stave" || type == "sword" || type == "greatsword" || type == "dagger" || type == "mace" || type == "warhammer" || type == "axe" || type == "waraxe" || type == "bow" || type == "misc") {
                return true;
            } else {            
                return false;
            }
        }
    }
}

我的测试文件如下:

Helmet
1
Dragon's Vale
0
10
0
14
1280

调试后

Debug Image

1 个答案:

答案 0 :(得分:0)

事实证明,我不知道为什么,但在我的ToLower()中添加Trim()修复了这个问题,但我没有看到它,因为同一文件中的另一个错误阻止我正确比较值。虽然我不知道为什么Trim在我的类型字符串之前或之后没有值时修复了我的问题,但我已经解决了这两个问题。无论如何,脚本都按预期工作。

固定代码是:

private string AssetType(TextAsset fileToBeChecked) {
    string[] line = fileToBeChecked.text.Split (new char[] { '\n' });
    return line [0].Trim ();
}