我目前正在为Android开发Highscore系统。 我有一个输入字段,玩家将在其中输入他们的姓名。
我想要它,以便播放器不必点击此输入字段即可输入。 但是,到目前为止,我的所有尝试都失败了。
我在 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键盘没有弹出,并且允许我在输入字段中输入文本。
答案 0 :(得分:1)
您是否尝试过使用协程?
void OnEnable()
{
StartCoroutine(SelectInputField());
}
IEnumerator SelectInputField()
{
yield return new WaitForEndOfFrame();
NameField.ActivateInputField();
}