尝试在Unity中以Int形式获取InputField输入

问题描述 投票:0回答:2

所以基本上,用户将在输入字段中输入小时数,我将得到他们在我的代码中以 int 形式写入的金额。

public InputField hours, minutes;
public int wantedHours, wantedMinutes;

基本上我想要的是人们在输入字段中写入一个值。其中一个输入字段将是您在我的代码中看到的“小时”,另一个输入字段将是“分钟”。我想要的是将这些输入字段输入作为您在我的代码中看到的“wantedHours”和“wantedMinutes”。

c# unity-game-engine format input-field
2个回答
0
投票

首先,我将输入类型验证设置为仅获取

Integers
,这样就可以避免检查输入是字母还是数字。

然后就可以得到字符串输入值:

string wantedHoursString = hours.text
如果您想将其解析为 int 变量,您可以通过多种方式使用
int.Parse
int.TryParse
:

if(int.TryParse(hours.text, out int result))
{
    wantedHours = result;   
}
else
{
    Debug.Log($"Attempted conversion of {hours.text} failed");
}

0
投票

在 InputField 的编辑器中将 ContentType 设置为 Integer:

在代码中使用:

public void SetScore(InputField input)
{
    int score = int.Parse(input.text);
    GameManager.SetScore(score);
}
© www.soinside.com 2019 - 2024. All rights reserved.