我目前正在为 Android 开发一个 Highscore 系统。我有一个输入字段,玩家将在其中输入他们的名字。
我想要它,这样玩家就不必点击这个输入字段来输入它。 然而,到目前为止,我所有的尝试都失败了。
我目前有一个名为HighScoreTemplate的预制件。这个预制件有一个 UI 输入字段(用于名称)和 UI 文本对象(用于乐谱)。它还有一个名为HighScoreTemplate.cs的脚本。
我在HighScoreTemplate.cs脚本中创建了一个Select()函数,该函数将在输入字段上调用.Select() ,然后在之后调用.ActivateInputField()。
public void Select()
{
// Select it
NameField.Select();
NameField.ActivateInputField();
}
但是,这不会自动选择 NameField 输入字段,因为我的 Android 设备上没有弹出键盘。
我已经通过调试验证了这个 Select() 函数正在被调用和运行。
我还验证了这个输入字段是可交互的,当我选择它时,我可以在检查器中看到它的复选框。
然后我假设 Unity 可能有延迟,所以我尝试了这个测试,看看它是否有效:
int counter = 1;
while(counter <= 50 && !_newHighScoreTemplate.NameField.isFocused)
{
_newHighScoreTemplate.Select();
Debug.Log("Select Attempt #" + counter);
counter++;
}
这个测试给了我同样的结果,android 键盘没有弹出并允许我在输入字段中输入文本。
有人可以阐明我做错了什么吗?为什么我的输入字段没有获得焦点,为什么 Android 中的键盘没有弹出以便我可以在字段中输入而无需先点击它?