Confused as hell about static classes and stuff.
Im doing something wrong here and idk what. Im trying to send data from GameManager to uiManager so uimanager can display some ui. failing spectacularily.
also expect some weird half-written code in the parts that reference ui here, sorry.
using UnityEngine;
using System.Collections.Generic;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
private const string PLAYER_ID_PREFIX = "Player ";
public static Dictionary<string, Player> players = new Dictionary<string, Player>(); // freaking tutorial doesnt say to use void start
public static GameManager GMinstance;
private GameObject uimgr = GameObject.FindWithTag("uiManager");
void Awake()
{
GMinstance = this;
}
[SerializeField]
private Text playerList;
public static void RegisterPlayer(string _netID, Player _player)
{
string _playerID = PLAYER_ID_PREFIX + _netID;
players.Add(_playerID, _player); // Player 1, 0af68923r
_player.transform.name = _playerID;
uimgr.DisplayUI();
}
public static void UnRegisterPlayer(string _playerID)
{
players.Remove(_playerID);
}
public static Player GetPlayer(string _playerID)
{
return players[_playerID];
}
}
.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class uiManager : MonoBehaviour
{
public static void DisplayUI(string _playerID, )
{
foreach (string _playerID in players.Keys)
{
GMinstance.playerList.text = GMinstance.playerList.text + _playerID + " - " + players[_playerID].transform.name + "/n";
}
}
}
Answer by xxmariofer · Feb 12, 2019 at 10:02 AM
i can not understand your code, and seems unfinished, whats your problem? for some reason your display ui method has a ',' are you expecting a second var? you cnt access a static var like that you need to rfernce the class, rather than
GMinstance.playerList....
to
GameManager.GMinstance.playerList....
third you cant access a private var like playerList, you need to make it public or create getters/setters
Was kinda in the middle of writing code and got tired and then realized it had gone to hell. $$anonymous$$akes sense now, thx.