如何解决如何在所有场景中运行一个方法——Unity?
有没有这样一种方法可以在所有场景中统一运行一个方法,而无需将数据从一个屏幕传递到另一个屏幕?我想要做的是假设我有一个像秒表一样计算时间的方法。当我打开游戏时,它开始在主屏幕上计数,例如 1,2,3...,当我转到另一个屏幕时,它应该继续运行该方法并继续计数 4,5,6...并且它应该像这样继续我切换到其他屏幕。
我认为可以在脚本中使用静态变量并在游戏对象的所有场景中使用相同的脚本来完成。但我想知道是否有我上面所说的更简单的方法,比如在游戏启动后在所有屏幕上运行一个全局方法。
解决方法
这是一个类的例子,它每秒记录一次值。您可以将 ShowCurrentValue 函数更改为您需要的函数。无论场景如何变化,这都会起作用。您可以在项目的任何位置使用相应的功能启动和停止它。
using UnityEngine;
using System.Threading;
public class Counter
{
public static ulong CurrentValue { get; set; } = 0;
private static Thread cThread = null;
public static void Start()
{
if (cThread == null)
cThread = new Thread(ShowCurrentValue);
cThread.Start();
}
public static void Pause()
{
if (cThread != null)
{
cThread.Abort();
CurrentValue++;
}
cThread = null;
}
private static void ShowCurrentValue()
{
while (true)
{
Debug.Log(CurrentValue);
Thread.Sleep(1000);
CurrentValue++;
}
}
}
,
我相信您正在寻找 LoadAdditive。还要检查一次文档 LoadAdditive
SceneManager.LoadScene("YourScene",LoadSceneMode.Additive);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。