Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#错误CS0029无法隐式转换类型';int';到UnityEngine.UI.Text_C#_Unity3d - Fatal编程技术网

C#错误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

我在控制台中不断遇到此错误: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(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();