我不相信有一种方法可以修改当前未打开的场景的上下文或对象。
public class GameResults {
public static string finalText = "";
}
在加载场景的函数中,在调用加载场景之前,您可以像这样访问该文本:
GameResults.finalText = "You Win!";
或者
GameResults.finalText = "You Lose!";
加载你的场景,并在你的文本对象上给它一个这样的脚本:
using UnityEngine;
using UnityEngine.UI;
public class ResultTextScript : MonoBehaviour
{
public Text textResults;
void Start() {
textResults = getComponent<Text>();
if(textResults != null) {
textResults.text = GameResults.finalText;
}
}
}
您还可以使用其他东西,即在结束场景开始时将游戏结果存储PlayerPrefs
并加载您存储在首选项中的字符串或 int 。PlayerPrefs
这将帮助您避免创建不必要的类或静态变量。
所以就像之前你可以做的那样:
PlayerPrefs.SetString("GameResults", "You Win!");
或者
PlayerPrefs.SetString("GameResults", "You Lose!");
加载你的场景,并在你的文本对象上给它一个这样的脚本:
using UnityEngine;
using UnityEngine.UI;
public class ResultTextScript : MonoBehaviour
{
public Text textResults;
void Start() {
textResults = getComponent<Text>();
if(textResults != null) {
textResults.text = PlayerPrefs.GetString("GameResults", "");
}
}
}