好的,所以在分数脚本中,我在更新函数中设置了代码,当“死”变量为假时计数。一旦“死”变量变为真,它就会停止。除了计数器在我仍然处于不理想的主菜单场景时启动之外,它运行良好。但是,当我尝试在主菜单脚本(例如 sCount)中创建一个变量,然后在分数脚本中检查 sCount 的状态时,我收到一个错误,即对象引用未设置为对象的实例。显然我没有正确引用变量或其他东西,但我的语法是完美的。将不胜感激任何帮助。 主菜单代码:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class Mainmenu : MonoBehaviour
{
private Score Score;
public bool sCount = false;
void Awake()
{
Score = GameObject.FindObjectOfType<Score>();
}
public void start()
{
Scene scene = SceneManager.GetactiveScene();
string currentScene = scene.name;
Debug.Log(currentScene);
}
public void ExitButton()
{
Application.Quit();
Debug.Log("Game Closed");
}
public void StartGame(){
//Score = GameObject.FindObjectOfType<Score>();
// Score.CountBegin();
sCount = true;
SceneManager.LoadScene("SpaceLevel");
}
}
评分脚本:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Score : MonoBehaviour
{
public Text scoreText;
public bool dead = false;
public bool startCount = false;
public string currentScene;
// Update is called once per frame
void Start()
{
scoreText.text = 0.ToString();
}
public void CountBegin()
{
startCount = true;
}
public void EndGame()
{
dead = true;
}
public void Update()
{
bool state = gameObject.getcomponent<Mainmenu>().sCount;
Scene scene = SceneManager.GetactiveScene();
string currentScene = scene.name;
Debug.Log(state);
if (state == true)
{
if (dead == true)
{
scoreText.text = scoreText.text;
}
else
{
scoreText.text = Time.time.ToString("0");
}
}
else
{
scoreText.text = 0.ToString();
}
}
}
其他一切正常,只是这个烦人的错误。