如何解决努力从 C# 中的不同脚本检查函数状态
好的,所以在分数脚本中,我在更新函数中设置了代码,当“死”变量为假时计数。一旦“死”变量变为真,它就会停止。除了计数器在我仍然处于不理想的主菜单场景时启动之外,它运行良好。但是,当我尝试在主菜单脚本(例如 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();
}
}
}
其他一切正常,只是这个烦人的错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。