У меня есть сцена, в которой у игрока есть возможность выбрать настройки для создаваемого им матча (количество раундов, время на раунд и т. Д. c ..), у меня также есть служебный класс MatchSettings, который содержит все эти Настройки, когда я запускаю игру на хосте, все работает нормально, однако, когда клиент присоединяется к игре, настройки совпадения клиентов равны 0 для всех. Настройки используются как часть класса GameManager, который реализует шаблон синглтона с членом MatchSettings , Итак, мой вопрос: как я могу сделать так, чтобы все участники игры имели одинаковые настройки? (Я знаю, что u- net устарела)
Соответствующий код для GameManager:
public class GameManager : MonoBehaviour
{
public static GameManager instance;
public MatchSettings settings;
void Awake()
{
if(instance != null)
{
Debug.LogError("Too many game managers");
}
else
{
instance = this;
respawnCamera.SetActive(false);
settings = new MatchSettings();
timePassed = settings.roundTime * 60;
roundsPlayed = 0;
highestKills = 0;
}
}
void Update()
{
timePassed -= Time.deltaTime;
if (timePassed < 0 || highestKills >= settings.maxKills)
{
Debug.Log(settings.roundTime); //prints 0 at client runtime
RoundOver();
}
if(roundsPlayed >= settings.roundCount)
{
GameOver();
}
}
}
Соответствующий код для MatchSettings:
[System.Serializable]
public class MatchSettings
{
public float roundovertime = 10f;
public static float roundtime; // the variables from the UI scene are stored in the static members and transferred
public static int maxkills; // into the regular ones when MatchSettings() is called [in awake in game manager]
public static int roundcount;
public float respawntime = 5f;
public float roundTime;
public int maxKills;
public int roundCount;
public MatchSettings()
{
roundTime = roundtime;
maxKills = maxkills;
roundCount = roundcount;
}
}
Заранее спасибо!