Я хочу показать имя игрока и название команды на нескольких уровнях. Я создал игровой объект с singleton, который вызывает servidor для загрузки этих переменных. Он работает на первом уровне, но не в других. Gameobject сохраняется, но не сохраняет имя игрока и имя_группы. Как я могу его получить?Текстовые переменные не сохраняются на нескольких уровнях
Это мой код:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class GlobalControl2 : MonoBehaviour
{
private static GlobalControl2 instance = null;
private Text PlayerName;
private Text TeamName;
void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(this.gameObject);
}
else
{
Destroy(this.gameObject);
}
}
public void Start()
{
PlayerName = GameObject.Find ("PlayerName").GetComponent<Text>();
TeamName = GameObject.Find ("TeamName").GetComponent<Text>();
new GameSparks.Api.Requests.AccountDetailsRequest()
.SetDurable(true)
.Send ((response) => {
PlayerName.text = response.DisplayName;
} );
new GameSparks.Api.Requests.GetMyTeamsRequest()
.SetDurable(true)
.Send(teamResp => {
if(!teamResp.HasErrors)
{
foreach(var teams in teamResp.Teams)
{
Debug.Log("Equipo: " + teams.TeamId);
TeamName.text = teams.TeamId;
}
}
} );
}
}
Yeeeees !! Оно работает!! Огромное спасибо. И как я могу сделать, если я не хочу показывать это на всех экранах? Как я могу исключить несколько сцен? – Angelsm
К сожалению, это не так, как работает статика, статический класс всегда будет присутствовать, как только он будет инициализирован, если вы не установите его нулевым, это как раз то, как C# работает и не имеет ничего общего с Unity perse. (Если ответ выше помог вам, отметьте его как ответ) –
Еще раз спасибо! – Angelsm