在我正在制作的游戏中,当玩家失败时会加载“游戏结束”场景。在游戏过程中,玩家的得分是根据其在屏幕上的位置计算的,随着玩家的y轴位置增加而增加。
我使用了以下代码在实际游戏场景中显示得分:
我尝试使用相同的编码在“游戏结束”屏幕上显示玩家的最终得分。我面临的问题是,在那个场景中玩家不是对象或精灵,因此我无法确定在“游戏结束”场景中的玩家。
有没有简单的方法可以将先前场景中的玩家精灵引用到最终(“游戏结束”)场景中,以便我可以使用它来确定最终得分?
这是我在玩耍场景中使用“EndScene”游戏对象尝试的脚本:
我使用了以下代码在实际游戏场景中显示得分:
using UnityEngine;
using UnityEngine.UI;
public class PlayerScore : MonoBehaviour
{
public Transform player;
public Text scoreText;
// Update is called once per frame
void Update()
{
scoreText.text = player.position.y.ToString("0");
}
}
我尝试使用相同的编码在“游戏结束”屏幕上显示玩家的最终得分。我面临的问题是,在那个场景中玩家不是对象或精灵,因此我无法确定在“游戏结束”场景中的玩家。
有没有简单的方法可以将先前场景中的玩家精灵引用到最终(“游戏结束”)场景中,以便我可以使用它来确定最终得分?
这是我在玩耍场景中使用“EndScene”游戏对象尝试的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class EndMenu: MonoBehaviour
{
public Text scoreText;
public Transform player;
public static bool GameEnds = false;
public GameObject endMenuUI;
void OnCollisionEnter2D(Collision2D exampleCol)
{
if(exampleCol.collider.tag == "Obstacle")
{
endMenuUI.SetActive(true);
Time.timeScale = 0.0001f;
GameEnds = true;
}
}
public void Retry()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex - 1);
}
public void BackToMenu()
{
SceneManager.LoadScene("Menu");
}
public void Quit()
{
Debug.Log("Quitting game...");
Application.Quit();
}
// Update is called once per frame
void Update()
{
scoreText.text = player.position.y.ToString("0");
}
}