【发布时间】:2018-02-22 10:54:55
【问题描述】:
在游戏中,我正在创建一个“游戏结束”场景,一旦玩家输掉游戏就会加载。在游戏过程中,分数是根据玩家在屏幕上的位置来计算的,并且随着玩家y轴位置的增加而增加。
我使用这段代码在实际玩游戏的场景中显示分数:
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");
}
}
我尝试使用相同的编码在“游戏结束”屏幕上显示玩家的最终得分。我遇到的问题是我无法识别“Game Over”场景中的玩家,因为玩家不是该场景中的对象或精灵。
是否有一种简单的方法可以将前一个场景中的玩家精灵引用到最终(“游戏结束”)场景中,以便我可以使用它来确定最终得分?
这是我在游戏场景中使用“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");
}
}
【问题讨论】:
-
您想将玩家精灵从一个游戏场景传递到另一个游戏场景?
-
@bilal1409 理想情况下,我想将玩家的最终位置(即得分)传递到最终的比赛结束场景中,稍后我将在我创建的得分文本中显示该场景。跨度>
-
像这个解决方案一样定义公共静态 Sprite stackoverflow.com/questions/42393259/…
-
@bilal1409 我有检查解决方案。但是,我对 c# 和统一编码还很陌生,并希望有一个更简单的解决方案。是否有更简单的方法来编写单独的脚本以在最终屏幕上显示播放器的最终位置?