我收到编译错误:无法将类型'string'隐式转换为'int'
{
public Transform player;
public Text scoreText;
// Update is called once per frame
void Update()
{
int score = player.position.z.ToString("0");
scoreText.text = score.ToString();
}
}
答案 0 :(得分:0)
player.position.z
是float
(请参阅Vector3
的{{3}})。因此,现在您正在尝试将此float
转换为int
,但是您正在使用toString()
方法将其float
转换为string
。这不起作用,因为您无法将int
的值设置为string
之一。
您可以通过强制转换将浮点数转换为整数:
int score = (int) player.position.z;
或者使用Unity(documentation)中的舍入方法:
int score = Mathf.RoundToInt(player.position.z)
答案 1 :(得分:0)
我猜您正在使用Unity。 z
是浮点数。您要尝试执行的操作是获取该float并将其转换为字符串。然后将其转换为int,然后再次将其转换为字符串。
由于您需要的是字符串,因此可以直接从float转到这样的字符串:
{
public Transform player;
public Text scoreText;
// Update is called once per frame
void Update()
{
scoreText.text = player.position.z.ToString("0");
}
}