我不相信有办法修改当前未打开的场景的上下文或对象。
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 中,并在结束场景开始时加载您存储在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", "");
}
}
}