【发布时间】:2021-01-04 17:32:42
【问题描述】:
我知道有很多类似的问题,但似乎没有一个与我的完全一样。每当一个对象被破坏时,我的分数就会增加一,并且工作正常,但我想在重新加载场景时将其重置为 0...由于某种原因,它不会重置,其他一切正常。
变量:
public Text Score;
public static int counter;
public Transform obstacle;
public GameObject Obstacle;
对象被销毁时递增的代码:
void Update()
{
if (Obstacle.transform.position.z <= -5)
{
DestroyObstacle(Obstacle);
}
Score.text = (counter / 3).ToString();
}
void DestroyObstacle(GameObject Obstacle)
{
Destroy(Obstacle);
counter++;
}
}
下面的代码会停止一切并弹出一个按钮。单击该按钮时,它会重新加载您所看到的关卡,但分数不会重置:
public void OnCollisionEnter(Collision collision)
{
if (collision.collider.tag == "Obstacle")
{
movement.enabled = false;
Spawner.enabled = false;
PlayButton.enabled = true;
PlayText.enabled = true;
PlayButton.onClick.AddListener(TaskOnClick);
}
}
void TaskOnClick()
{
Score.text = 0.ToString();
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
我知道这可能很简单,但我非常感谢您的帮助。 还!由于某种原因,如果我的计数器不是静态 int,分数不会增加吗?这就是为什么它是静态的。
【问题讨论】:
-
开始功能中的
counter = 0有帮助吗? -
不,它没有