Ich möchte den Spielernamen und den Teamnamen in mehreren Ebenen anzeigen. Ich habe ein Spielobjekt mit einem Singleton erstellt, das den Servidor aufruft, um diese Variablen zu laden. Es funktioniert in der ersten Ebene, aber nicht in den anderen. Das Spielobjekt bleibt bestehen, speichert jedoch nicht den Spielernamen und TeamName. Wie kann ich es bekommen?Textvariablen bestehen nicht in mehreren Ebenen
Dies ist mein Code:
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 !! Es klappt!! Ich danke dir sehr. Und wie kann ich es machen, wenn ich es nicht auf allen Bildschirmen zeigen möchte? Wie kann ich mehrere Szenen ausschließen? – Angelsm
Leider funktioniert Statik nicht, eine statische Klasse wird immer vorhanden sein, sobald sie initialisiert wurde, es sei denn, du setzt sie selbst auf null, so funktioniert C# und hat nichts mit Unity perse zu tun. (Wenn die obige Antwort Ihnen geholfen hat, markieren Sie sie bitte als Antwort) –
Nochmals vielen Dank! – Angelsm