private void ReCreateLink(LinkInfo.LinkType linkType, int siblingIndex, LinkInfo.InCase inCaseValues)
    {
        var linkGameObject = Instantiate(_links[(int)linkType - 1], LinksManager.Instance.InUse.ParentTransform);

        linkGameObject.name = _links[(int)linkType - 1].name;
        linkGameObject.transform.SetSiblingIndex(siblingIndex);
        var linkInfo = linkGameObject.GetComponent <LinkInfo>();

        linkInfo.LayoutElementScript.enabled      = true;
        linkInfo.LinkDragScript.enabled           = false;
        linkInfo.CanvasGroupScript.blocksRaycasts = true;
        if (linkInfo.LinkTypeName == LinkInfo.LinkType.Think ||
            linkInfo.LinkTypeName == LinkInfo.LinkType.Watch)
        {
            var goToDisplay   = linkGameObject.transform.GetChild(1).gameObject;
            var rectTransform = goToDisplay.GetComponent <RectTransform>();
            goToDisplay.SetActive(true);
            rectTransform.offsetMin = Vector2.zero;
            rectTransform.offsetMax = Vector2.zero;
            goToDisplay.transform.GetChild(0).GetChild(0).GetComponent <Text>().text = inCaseValues.Idle.ToString();
            goToDisplay.transform.GetChild(1).GetChild(0).GetComponent <Text>().text = inCaseValues.Attack.ToString();
            goToDisplay.transform.GetChild(2).GetChild(0).GetComponent <Text>().text = inCaseValues.Dodge.ToString();
            linkInfo.InCaseValues = inCaseValues;
        }
        LinksManager.Instance.AddNewLink(siblingIndex, linkGameObject.transform);
    }
    private void LoadGame()
    {
        if (!File.Exists(_absoluteFilePath))
        {
            return;
        }
        using (var streamReader = new StreamReader(_absoluteFilePath))
        {
            while (streamReader.Peek() >= 0)
            {
                var linkTypeString = streamReader.ReadLine();
                Assert.IsNotNull(linkTypeString);
                var linkType = (LinkInfo.LinkType) int.Parse(linkTypeString);

                var siblingIndexString = streamReader.ReadLine();
                Assert.IsNotNull(siblingIndexString);
                var siblingIndex = int.Parse(siblingIndexString);

                var inCaseValues = new LinkInfo.InCase();
                if (linkType == LinkInfo.LinkType.Think || linkType == LinkInfo.LinkType.Watch)
                {
                    var idle = streamReader.ReadLine();
                    Assert.IsNotNull(idle);
                    inCaseValues.Idle = int.Parse(idle);

                    var attack = streamReader.ReadLine();
                    Assert.IsNotNull(attack);
                    inCaseValues.Attack = int.Parse(attack);

                    var dodge = streamReader.ReadLine();
                    Assert.IsNotNull(dodge);
                    inCaseValues.Dodge = int.Parse(dodge);
                }
                ReCreateLink(linkType, siblingIndex, inCaseValues);
            }
        }
    }