我正在尝试设置一个条件,如果文件存在,则读取它的属性。我这样做的方法是让用户写一个 ID,如果该 ID 与文件名匹配,那么它就会成为条件。但是,我无法通过 UserInput 使其返回 true,但是当我将 ID 直接写入代码时它可以工作,而且我真的不知道发生了什么。
我尝试在控制台中打印直接写入的 ID 字符串和 InputField,结果看起来是一样的:
当我使用代码中写入的字符串和 InputField 打印目录位置时,它看起来像这样:
我真的不知道如何从这里开始,我已经被困了很长一段时间,这是我使用的代码(非常简单):
string path = BackupBO.Instance.DirectoryName + BackupSelected + "/" + "BBC24F4DE88E4031.txt";//UserInput en teoria
string pathInput = BackupBO.Instance.DirectoryName + BackupSelected + "/" + UserInput.text+".txt";
Debug.Log("Path with string literal: "+path);
Debug.Log("Path with UserInput: " + pathInput);
Debug.Log("Does the path with string literal exist?" + File.Exists(path));
Debug.Log("Does the path with UserInput exist?" + File.Exists(pathInput));
显然 TextMeshProUGUI 有一个错误,即 InputField 中的文本在文本末尾有一个不可见的字符。我将其更改为遗留文本和普通 InputField 并且它有效。
这是一个已知的“问题”,在
TextMeshProUGUI
的TMP_InputField
组件中有一个尾随的不可见字符。出于这个和其他原因,您不应该通过输入字段的TMP_Text
组件。
你应该直接通过
TMP_InputField.text
属性来减轻这种情况并包含实际的输入字符串。
public TMP_InputField UserInput;
应该解决那个问题