【发布时间】:2016-12-23 23:04:10
【问题描述】:
我正在创建一款专为视力受损的游戏玩家设计的游戏。我的分数文本当前会在游戏过程中显示。一旦你丢失它会加载一个新场景(结束屏幕),但我希望在加载结束场景时保持分数,然后在再次加载游戏屏幕时将其重置为 0,然后在玩家决定返回时将其删除到主菜单。
这是加载下一个场景的内容。
public int amount;
public void ChangeScene(int changeTheScene)
{
SceneManager.LoadScene(changeTheScene);
}
void Start()
{
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
amount += 1;
Debug.Log(amount);
if (amount == 10)
{
SceneManager.LoadScene(2);
}
}
}
}
这就是我跟踪分数的方式
void Start()
{
count = 0;
SetCountText();
float x = Random.Range(325f, -600f);
float y = Random.Range(250f, -450f);
Debug.Log(x + "," + y);
prefab.GetComponent<RectTransform>().anchoredPosition = new Vector2(x, y);
loseObject.GetComponent<Lose>().amount = 0;
}
public void move()
{
float x = Random.Range(325f, -600f);
float y = Random.Range(250f, -450f);
Debug.Log(prefab.transform.position.x + "," + prefab.transform.position.y);
prefab.GetComponent<RectTransform>().anchoredPosition = new Vector2(x, y);
loseObject.GetComponent<Lose>().amount = 0;
count = count + 1;
SetCountText();
}
void SetCountText()
{
countText.text = "Count: " + count.ToString();
}
}
【问题讨论】:
-
嘿,您必须制作一个在加载时不会破坏分数的对象。然后它将持续存在于场景中。 docs.unity3d.com/ScriptReference/Object.DontDestroyOnLoad.html
-
嗨,我只需要它进入一个场景然后消失,我该怎么办?加载时也不要破坏对附着在画布上的任何东西都不起作用,我需要一个文本对象来继续下一个场景而不是游戏对象。有什么帮助吗?干杯
-
对文本使用 dontdestroyonload 函数,有某种指向该实例的指针,然后在您想删除文本时调用销毁或池化文本。
-
Alox,你介意给我写个例子吗?在编程方面,我有点新手。 (设计师 xD)