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

        }

    }

}

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