C#错误CS0029无法隐式转换类型';int';到UnityEngine.UI.Text
我在控制台中不断遇到此错误:Assets/Scripts/ScoreScript.cs(37,25):错误CS0029:无法将类型“int”隐式转换为UnityEngine.UI.Text 这是我的密码:C#错误CS0029无法隐式转换类型';int';到UnityEngine.UI.Text,c#,unity3d,C#,Unity3d,我在控制台中不断遇到此错误:Assets/Scripts/ScoreScript.cs(37,25):错误CS0029:无法将类型“int”隐式转换为UnityEngine.UI.Text 这是我的密码: public class ScoreScript : MonoBehaviour { public static int score = 0; public Text scoreText; private void OnTriggerEnter2D(Collider2
public class ScoreScript : MonoBehaviour
{
public static int score = 0;
public Text scoreText;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "Score")
{
scoreText.text = (++score).ToString();
Destroy(collision.gameObject);
return;
}
else if (collision.tag == "Obstacle")
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
scoreText = 0;
}
}
}
在此处更改此行:
scoreText = 0;
致:
scoreText
是一个Text
,但您正在尝试为其分配一个数字。您已经在scoreText.Text=(++.score.)ToString()中正确执行了该操作。只需在下面执行相同的操作,其中scoreText.text=0
请仅包含相关代码。同样,在Unity中,拥有不做任何事情的Start
和Update
方法是不必要的执行命中。Unity不会在未定义的游戏对象上调用这些方法,因此如果它们不打算做任何事情,您可以通过不编写它们来节省性能。正如@Amy在上面的评论中所说,scoreText
是UI。Text
对象是Unity
,它不能被分配整数值,您需要将它的.text
属性设置为转换为字符串的整数值。这很有效,谢谢。但是现在,当我的角色死亡和重生时,分数重置为零,这是我想要的,但是当我碰到障碍物时,我的分数应该增加1,它增加2。然后,当我的角色第三次重生时,它会将我的分数从0增加到3。如何修复此问题?@Hanaan328您需要将分数
值重置为0。目前,您只需设置scoreText=0
,但分数仍然保留着他们死前拥有的一切。所以,当你说scoreText=(++score)
时,它会在他们之前的基础上增加1。你能告诉我如何修复它吗?我是C夏普的noob抱歉添加这行score=0代码>进入if(collision.tag==“障碍物”)
scoreText.text = 0.ToString();