public CanvasGroup D1, D2, D3, D4; // dice icons
    private void Start()
    {
        PlayerDetectedAtFrstRoll = false;
        ShowTimeOfDice           = this;

        // Quaternion of Dice1
        Dice1_numbers_angles[0] = Quaternion.Euler(90f, 0f, 0f);
        Dice1_numbers_angles[1] = Quaternion.Euler(0, 0f, 90f);
        Dice1_numbers_angles[2] = Quaternion.Euler(180, 0f, 0f);
        Dice1_numbers_angles[3] = Quaternion.Euler(0, 0f, 0f);
        Dice1_numbers_angles[4] = Quaternion.Euler(0, 0f, -90f);
        Dice1_numbers_angles[5] = Quaternion.Euler(-90, 0f, 0f);

        // Quaternion of Dice2
        Dice2_numbers_angles[0] = Quaternion.Euler(90f, 0f, 0f);
        Dice2_numbers_angles[1] = Quaternion.Euler(0, 0f, 90f);
        Dice2_numbers_angles[2] = Quaternion.Euler(180, 0f, 0f);
        Dice2_numbers_angles[3] = Quaternion.Euler(0, 0f, 0f);
        Dice2_numbers_angles[4] = Quaternion.Euler(0, 0f, -90f);
        Dice2_numbers_angles[5] = Quaternion.Euler(-90, 0f, 0f);

        //show time dices initial positions
        initial_pos_Dice1 = Dice_1.position;
        initial_pos_Dice2 = Dice_2.position;

        stopDicesFromRolling = false;

        if (PlayerPrefs.GetInt("skins") == 1 | PlayerPrefs.GetInt("skins") == 3) // changes the color of dice base on skins that player selected
        {
            Dice_1.GetComponent <Renderer>().materials[0].color = new Color(1f, 1f, 0.7f);
            Dice_1.GetComponent <Renderer>().materials[1].color = Color.black;

            Dice_2.GetComponent <Renderer>().materials[0].color = new Color(1f, 1f, 0.7f);
            Dice_2.GetComponent <Renderer>().materials[1].color = Color.black;

            Dice_1.GetComponent <Renderer>().materials[0].SetColor("_EmissionColor", new Color(0.46f, 0.46f, 0.34f));
            Dice_1.GetComponent <Renderer>().materials[1].SetColor("_EmissionColor", Color.black);

            Dice_2.GetComponent <Renderer>().materials[0].SetColor("_EmissionColor", new Color(0.46f, 0.46f, 0.34f));
            Dice_2.GetComponent <Renderer>().materials[1].SetColor("_EmissionColor", Color.black);
        }
    }
    void BringTheDice()
    {
        if (!stopDicesFromRolling)
        {
            switch (Dice_Tracker.DiceTrackerClass.diceNumber1)
            {
            case 1:
                Dice1_angle = Dice1_numbers_angles[0];
                break;

            case 2:
                Dice1_angle = Dice1_numbers_angles[1];
                break;

            case 3:
                Dice1_angle = Dice1_numbers_angles[2];
                break;

            case 4:
                Dice1_angle = Dice1_numbers_angles[3];
                break;

            case 5:
                Dice1_angle = Dice1_numbers_angles[4];
                break;

            case 6:
                Dice1_angle = Dice1_numbers_angles[5];
                break;
            }

            switch (Dice_Tracker1.DiceTracker1Class.diceNumber2)
            {
            case 1:
                Dice2_angle = Dice2_numbers_angles[0];
                break;

            case 2:
                Dice2_angle = Dice2_numbers_angles[1];
                break;

            case 3:
                Dice2_angle = Dice2_numbers_angles[2];
                break;

            case 4:
                Dice2_angle = Dice2_numbers_angles[3];
                break;

            case 5:
                Dice2_angle = Dice2_numbers_angles[4];
                break;

            case 6:
                Dice2_angle = Dice2_numbers_angles[5];
                break;
            }

            if (Dice_Tracker.DiceTrackerClass.diceNumber1 == Dice_Tracker1.DiceTracker1Class.diceNumber2)
            {
                Msg_Of_Even_Dice_situation.SetActive(true);
                Msg_Of_P1.gameObject.SetActive(false);
                Msg_oF_P2.gameObject.SetActive(false);

                StartCoroutine(explain_even_dice_Situation());
            }

            else
            //if (PlayerClass.myPlayerNumber == 1)
            if (Dice_Tracker.DiceTrackerClass.diceNumber1 > Dice_Tracker1.DiceTracker1Class.diceNumber2)
            {
                PlayerClass.player_number = 1;

                Msg_Of_P1.SetActive(true);
                msg_popdown.Play("PopUp_note");
            }

            else
            {
                PlayerClass.player_number = 2;

                Msg_oF_P2.SetActive(true);
                msg_popdown.Play("PopUp_note");
            }
            //else
            //{
            //    if (Dice_Tracker.DiceTrackerClass.diceNumber1 > Dice_Tracker1.DiceTracker1Class.diceNumber2)
            //    {
            //        PlayerClass.player_number = 2;

            //        Msg_oF_P2.SetActive(true);
            //        msg_popdown.Play("PopUp_note");

            //    }

            //    else
            //    {
            //        PlayerClass.player_number = 1;

            //        Msg_Of_P1.SetActive(true);
            //        msg_popdown.Play("PopUp_note");
            //    }
            //}

            D1.alpha = D2.alpha = D3.alpha = D4.alpha = 1f;

            Vector3 magnetute = target_d1.position - Dice_1.position;

            Dice_1.position = Vector3.Lerp(Dice_1.position, target_d1.position, 4f * Time.deltaTime); // moves dice to destination
            Dice_2.position = Vector3.Lerp(Dice_2.position, target_d2.position, 4f * Time.deltaTime);

            if (magnetute.sqrMagnitude > 0.25f)                              // if dice gets close to destination rotate not longer happens to dice
            {
                Dice_1.Rotate(-Dice_1.right * Time.timeSinceLevelLoad * 2f); // speed of rotate
                Dice_2.Rotate(Dice_2.right * Time.timeSinceLevelLoad * 2f);
            }
            else
            {
                Dice_1.rotation = Quaternion.identity;
                Dice_2.rotation = Quaternion.identity;

                Dice_1.rotation = Quaternion.Lerp(Dice_1.rotation, Dice1_angle, Time.timeSinceLevelLoad * 2f);
                Dice_2.rotation = Quaternion.Lerp(Dice_2.rotation, Dice2_angle, Time.timeSinceLevelLoad * 2f);

                if (Dice_Tracker.DiceTrackerClass.diceNumber1 != Dice_Tracker1.DiceTracker1Class.diceNumber2) // shows up start_game_btn
                {
                    start_game_btn.Play("start_game_btn");
                }

                p1.enabled = true;
                p2.enabled = true;
            }
        }

        if (stopDicesFromRolling)
        {
            Time.timeScale  = 1f;
            Dice_1.position = Vector3.Lerp(Dice_1.position, initial_pos_Dice1, Time.deltaTime * 1f);
            Dice_2.position = Vector3.Lerp(Dice_2.position, initial_pos_Dice2, Time.deltaTime * 1f);

            Dice_1.Rotate(2f * Time.timeSinceLevelLoad * Dice_1.right);
            Dice_2.Rotate(2f * Time.timeSinceLevelLoad * -Dice_2.right);
        }

        Time.timeScale = 1f; // when dice rolls the timescale will gets higher and after finishing process of specifying dice number timesclae will be 1 again
    }