以下脚本是我开始使用的内容,它采用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
调试后
答案 0 :(得分:0)
事实证明,我不知道为什么,但在我的ToLower()中添加Trim()修复了这个问题,但我没有看到它,因为同一文件中的另一个错误阻止我正确比较值。虽然我不知道为什么Trim在我的类型字符串之前或之后没有值时修复了我的问题,但我已经解决了这两个问题。无论如何,脚本都按预期工作。
固定代码是:
private string AssetType(TextAsset fileToBeChecked) {
string[] line = fileToBeChecked.text.Split (new char[] { '\n' });
return line [0].Trim ();
}