Почему объект с Network Identity выключается при загрузке сцены
У меня на сцене есть объект GameController В котором находятся скрипты GameManager и Network Identity. Когда я подключаюсь как хост, то всё в порядке, но когда я подключаюсь как клиент, GameController отключается.
using Mirror;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using Random = UnityEngine.Random;
public class GameManager : NetworkBehaviour
{
[SyncVar(hook = nameof(CreateStackOfCards))]
[SerializeField] private string Cards_text_mass;
public float cardBias = .25f;
public GameObject cardsGO;
public GameObject cardPrefab;
public List<GameObject> cards = new List<GameObject>();
private void Awake()
{
// DontDestroyOnLoad(this);
}
public void Start()
{
if (isServer)
{
CreateMassOfCards();
}
}
public void StopGame()
{
if (NetworkServer.active && NetworkClient.active)
{
NetworkManager.singleton.StopHost();
}
else if (NetworkClient.isConnected)
{
NetworkManager.singleton.StopClient();
}
else if (NetworkServer.active)
{
NetworkManager.singleton.StopServer();
}
}
[Server]
public void CreateMassOfCards()
{
print("Create Cards Mass");
char[,] grid = new char[10, 10];
char letter = 'A';
List<string> cards_text = new List<string>();
for (int i = 0; i < 10; i++)
{
char digit = '1';
for (int j = 0; j < 10; j++)
{
grid[i, j] = letter;
int f = j + 1;
string t = grid[i, j].ToString() + f.ToString();
cards_text.Add(t);
digit++;
}
letter++;
}
for (int i = cards_text.Count - 1; i >= 1; i--)
{
int j = Random.Range(0, i + 1);
// обменять значения data[j] и data[i]
var temp = cards_text[j];
cards_text[j] = cards_text[i];
cards_text[i] = temp;
}
string texts = "";
for (int i = 0; i < cards_text.Count; i++)
{
texts += cards_text[i] + ";";
}
Cards_text_mass = texts.ToString();
}
private void CreateStackOfCards(string old_value, string new_value)
{
string cards_texts = new_value;
print("Create Cards");
print(cards_texts);
float c = 0;
string[] texts = cards_texts.Split(';');
if (cards != null)
{
for (int i = 0; i < cards.Count; i++)
{
Destroy(cards[i]);
}
cards.Clear();
}
for (int f = 0; f < texts.Length - 1; f++)
{
print(texts[f]);
GameObject card = Instantiate(cardPrefab, cardsGO.transform);
card.name = texts[f];
card.GetComponentInChildren<TextMeshProUGUI>().text = texts[f];
card.GetComponent<RectTransform>().anchoredPosition = new Vector2(c, -60);
c -= cardBias;
cards.Add(card);
print(card);
}
}
}
Я пробовал ставить Force Shown на Network Identity, пробовал прописывать DontDestroyOnLoad в GameManager, но GameController всё равно отключается