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";
}
}
}
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