В Unity список обнуляется при вызове Update или других методов

Вот фулл код, в методе Start Debug.Log(diamonds.Count); выводит 1, но в других методах эта же строка выводит 0. P.S. Комментариями обозначены нужные места

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;

public class Main : MonoBehaviour
{
    public List<string> allCards = new List<string>() {"c6", "c7", "c8", "c9", "c10", "cj", "cq", "ck", "ca",
                                                       "d6", "d7", "d8", "d9", "d10", "dj", "dq", "dk", "da",
                                                       "h6", "h7", "h8", "h9", "h10", "hj", "hq", "hk", "ha",
                                                       "s6", "s7", "s8", "s9", "s10", "sj", "sq", "sk", "sa"};
    [SerializeField] public List<string> playerCards;
    [SerializeField] public List<string> bot1cards;
    [SerializeField] public List<string> bot2cards;
    private SpriteRenderer spriteRenderer;

    [SerializeField] public List<GameObject> playerCardsObjects;
    [SerializeField] public List<GameObject> bot1CardsObjects;
    [SerializeField] public List<GameObject> bot2CardsObjects;

    public List<string> clubs;
    public List<string> diamonds; //Тот самый список
    public List<string> hearts;
    public List<string> spears;

    float offset = 1.4f;
    float startX = -7.7f;
    float startY = -3.7f;

    public GameObject card;
    public GameObject card2;
    public Canvas canvas;

    public List<Sprite> sprites = new List<Sprite>();
    public List<Sprite> images = new List<Sprite>();

    float offset2 = 0.5f;
    float X1 = -8.1f;
    float Y1 = 4.0f;
    float X2 = 8.2f;
    float Y2 = 4.0f;

    int turn;
    
    float offset3 = 0.5f;

    float cX1 = 0f;
    float cY1 = 4f;

    float dX1 = 0f;
    float dY1 = 2.3f;

    float hX1 = 0f;
    float hY1 = 0.6f;

    float sX1 = 0f;
    float sY1 = -1.1f;

    float cX2 = -0.5f;
    float cY2 = 4f;

    float dX2 = -0.5f;
    float dY2 = 2.3f;

    float hX2 = -0.5f;
    float hY2 = 0.6f;

    float sX2 = -0.5f;
    float sY2 = -1.1f;

    private int frames = 0;

    public string cardSelected = "";


    void Start()
    {
        int i = 0;
        while (i < 12) {
            int index = UnityEngine.Random.Range(0, allCards.Count-1);
            string rand = allCards[index];
            if (playerCards.Contains(rand))
                continue;
            playerCards.Add(rand);
            GameObject newCard = Instantiate(card2) as GameObject;
            newCard.name = rand;
            float posX = startX + i * offset;
            float posY = startY;

            newCard.transform.position = new Vector3(startX + i * offset, startY, 0);
            newCard.transform.localScale -= new Vector3(0.99f, 0.92f, 0);

            newCard.GetComponent<Image>().sprite = images[index];
            newCard.transform.SetParent(canvas.transform);
            playerCardsObjects.Add(newCard);

            newCard.GetComponentInChildren<Text>().text = string.Empty;

            i++;
        }
        i = 0;
        while (i < 12) {
            int index = UnityEngine.Random.Range(0, allCards.Count-1);
            string rand = allCards[index];
            if (playerCards.Contains(rand) || bot1cards.Contains(rand))
                continue;
            bot1cards.Add(rand);
            GameObject newCard = Instantiate(card) as GameObject;
            newCard.name = rand;

            newCard.transform.position = new Vector3(X1, Y1 - i * offset2, 0);
            newCard.transform.localScale = new Vector3(1.3f, 1.3f, 0);

            newCard.GetComponent<SpriteRenderer>().sprite = sprites[36];
            bot1CardsObjects.Add(newCard);
            i++;
        }
        foreach (string rand in playerCards) {
            allCards.Remove(rand);
        }
        foreach (string rand in bot1cards) {
            allCards.Remove(rand);
        }
        i = 0;
        while (i < 12) {
            bot2cards = allCards;
            GameObject newCard = Instantiate(card) as GameObject;

            newCard.transform.position = new Vector3(X2, Y2 - i * offset2, 0);
            newCard.transform.localScale = new Vector3(1.3f, 1.3f, 0);

            newCard.GetComponent<SpriteRenderer>().sprite = sprites[36];
            bot2CardsObjects.Add(newCard);
            i++;
        }
        if (playerCards.Contains("d9"))
            turn = 0;
        else if (bot1cards.Contains("d9"))
            turn = 1;
        else
            turn = 2;

        if (turn == 0) {
            Destroy(playerCardsObjects[playerCards.IndexOf("d9")]);
            playerCards.Remove("d9");
        }
        else if (turn == 1) {
            Destroy(bot1CardsObjects[bot1cards.IndexOf("d9")]);
            bot1cards.Remove("d9");
        }
        else {
            Destroy(bot2CardsObjects[bot2cards.IndexOf("d9")]);
            bot2cards.Remove("d9");
        }
        diamonds.Add("d9"); //Добавление в него элемента
        GameObject newCard_ = Instantiate(card) as GameObject;
        newCard_.transform.position = new Vector3(dX1, dY1, 0);
        newCard_.transform.localScale = new Vector3(1.3f, 1.3f, 0);
        newCard_.GetComponent<SpriteRenderer>().sprite = sprites[12];
        dX1 += offset3;
        turn++;
    }

    public void OnMouseDown() {
        string _name = this.name;
        cardSelected = _name;
    }

    public void Update() {
        frames++;
        if (frames == 30) {
            frames = 0;
            if (turn == 3) {
                turn = 0;
            }
            if (turn == 0) {
                if (cardSelected != "") {
                    if (cardSelected == "c6") {
                        if (clubs.Contains("c7")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "c7") {
                        if (clubs.Contains("c8")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "c8") {
                        if (clubs.Contains("c9")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "c9") {
                        Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                        playerCards.Remove(cardSelected);
                        cardSelected = "";
                        turn++;
                    }
                    if (cardSelected == "c10") {
                        if (clubs.Contains("c9")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "cj") {
                        if (clubs.Contains("c10")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "cq") {
                        if (clubs.Contains("cj")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "ck") {
                        if (clubs.Contains("cq")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "ca") {
                        if (clubs.Contains("ck")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "d6") {
                        if (diamonds.Contains("d7")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "d7") {
                        if (diamonds.Contains("d8")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "d8") {
                        Debug.Log(diamonds.Count);
                        if (diamonds.Contains("d9")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "d9") {
                        Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                        playerCards.Remove(cardSelected);
                        cardSelected = "";
                        turn++;
                    }
                    if (cardSelected == "d10") {
                        Debug.Log(diamonds.Count);
                        if (diamonds.Contains("d9")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "dj") {
                        if (diamonds.Contains("d10")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "dq") {
                        if (diamonds.Contains("dj")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "dk") {
                        if (diamonds.Contains("dq")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "da") {
                        if (diamonds.Contains("dk")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "h6") {
                        if (hearts.Contains("h7")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "h7") {
                        if (hearts.Contains("h8")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "h8") {
                        if (hearts.Contains("h9")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "h9") {
                        Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                        playerCards.Remove(cardSelected);
                        cardSelected = "";
                        turn++;
                    }
                    if (cardSelected == "h10") {
                        if (hearts.Contains("h9")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "hj") {
                        if (hearts.Contains("h10")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "hq") {
                        if (hearts.Contains("hj")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "hk") {
                        if (hearts.Contains("hq")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "ha") {
                        if (hearts.Contains("hk")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "s6") {
                        if (spears.Contains("s7")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "s7") {
                        if (spears.Contains("s8")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "s8") {
                        if (spears.Contains("s9")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "s9") {
                        Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                        playerCards.Remove(cardSelected);
                        cardSelected = "";
                        turn++;
                    }
                    if (cardSelected == "s10") {
                        if (spears.Contains("s9")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "sj") {
                        if (spears.Contains("s10")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "sq") {
                        if (spears.Contains("sj")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "sk") {
                        if (spears.Contains("sq")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                    if (cardSelected == "sa") {
                        if (spears.Contains("sk")) {
                            Destroy(playerCardsObjects[playerCards.IndexOf(cardSelected)]);
                            playerCards.Remove(cardSelected);
                            cardSelected = "";
                            turn++;
                        }
                    }
                }
            }
        }
    }
}


Ответы (0 шт):