Beispiel #1
0
    public void OnLevelLoad()
    {
        Name_ReplicaStruct temp = MainManager.scene1Text.GetReplica();

        StartCoroutine(ShowText(temp));
        isTyping = false;
    }
Beispiel #2
0
    public IEnumerator ShowText(Name_ReplicaStruct text)
    {
        if (lastState != text.state || text.state == TextState.Special)
        {
            isTyping = true;
            StartCoroutine(Tools.MakeTransparent(characterImg, 0.5f, true));
            StartCoroutine(Tools.MakeTransparent(textPanel, 0.5f, true));
            StartCoroutine(Tools.MakeTransparentText(charName, 0.5f, true));
            yield return(StartCoroutine(Tools.MakeTransparentText(replicaText, 0.5f, true)));

            if (text.name != CharactersName.StorryTeller)
            {
                string name = Enum.GetName(typeof(CharactersName), text.name);
                if (name.Contains("Unknown_"))
                {
                    name = name.Substring(8);
                }
                characterImg.sprite = Resources.Load <Sprite>($"sprites/{name}/{name}_{Enum.GetName(typeof(CharacterEmotions), text.emotion)}");
            }

            string path;
            if (text.replica.Length > 140)
            {
                path = "";
            }
            else if (text.replica.Length <= 140 && text.replica.Length > 53)
            {
                path = "Medium";
            }
            else
            {
                path = "Small";
            }

            switch (text.state)
            {
            case TextState.Center:
            {
                characterImg.enabled = false;
                textPanel            = GameObject.Find("ReplicaBGCenter" + path).GetComponent <Image>();
                charName             = textPanel.transform.GetChild(1).GetComponent <Text>();
                replicaText          = textPanel.transform.GetChild(0).GetComponent <Text>();

                break;
            }

            case TextState.Left:
            {
                textPanel     = GameObject.Find("ReplicaBGLeft" + path).GetComponent <Image>();
                charName      = textPanel.transform.GetChild(1).GetComponent <Text>();
                replicaText   = textPanel.transform.GetChild(0).GetComponent <Text>();
                charName.text = text.NameToString(text.name);
                characterImg.rectTransform.anchoredPosition = new Vector2(-65, 150);
                characterImg.enabled = true;
                StartCoroutine(FlyCamera(2));
                break;
            }

            case TextState.Right:
            {
                textPanel     = GameObject.Find("ReplicaBGRight" + path).GetComponent <Image>();
                charName      = textPanel.transform.GetChild(1).GetComponent <Text>();
                replicaText   = textPanel.transform.GetChild(0).GetComponent <Text>();
                charName.text = text.NameToString(text.name);
                characterImg.rectTransform.anchoredPosition = new Vector2(300, 150);
                characterImg.enabled = true;
                StartCoroutine(FlyCamera(1));
                break;
            }

            case TextState.Special:
            {
                characterImg.enabled = false;
                text.ScriptEvent();
                break;
            }
            }

            if (text.state != TextState.Special && text.state != TextState.NULL)
            {
                StartCoroutine(Tools.MakeTransparent(textPanel, 0.5f, false));
                StartCoroutine(Tools.MakeTransparentText(replicaText, 0.5f, false));
                StartCoroutine(Tools.MakeTransparentText(charName, 0.5f, false));
            }
        }
        lastState = text.state;
        if (text.state != TextState.Special)
        {
            charName.text = text.NameToString(text.name);
            StartCoroutine(Tools.MakeTransparent(characterImg, 0.5f, false));
            replicaText.text = text.replica;
            isTyping         = false;
        }
    }