Ejemplo n.º 1
0
    IEnumerator Talk(FlashClip clip)
    {
        m_isFlashing = true;
        foreach (char letter in clip.text.ToCharArray())
        {
            if (m_isFlashing == false)
            {
                ui_text.text = clip.text;
                break;
            }

            ui_text.text += letter;
            yield return(new WaitForSeconds(0.1f));
        }
    }
Ejemplo n.º 2
0
    public void PlayFlash(int clipIndex)
    {
        if (clipIndex < 0 || clipIndex >= flashClips.Count)
        {
            ui_flashPanel.SetActive(false);
            return;
        }
        else
        {
            FlashClip thisClip = flashClips[clipIndex];
            if (thisClip.needRefresh)
            {
                RefreshTexture(thisClip);
                RefreshBlack(thisClip);
                RefreshTalkTxt();
            }
            switch (thisClip.type)
            {
            case CLIP_TYPE.none:
                RefreshTexture(thisClip);
                break;

            case CLIP_TYPE.fade_in:
                StartCoroutine(FadeIn(thisClip));
                break;

            case CLIP_TYPE.fade_out:
                StartCoroutine(FadeOut(thisClip));
                break;

            case CLIP_TYPE.talk:
                RefreshBlack(thisClip);
                RefreshTalkTxt();
                StartCoroutine(Talk(thisClip));
                break;

            default:
                break;
            }

            m_nextIndex = thisClip.nextClipIndex;
        }
    }
Ejemplo n.º 3
0
    IEnumerator FadeOut(FlashClip clip)
    {
        m_isFlashing = true;
        Rect    canvasRect = GetComponent <RectTransform>().rect;
        Vector3 fadePos    = new Vector3(canvasRect.width / 2, -canvasRect.height / 2, 0);
        Vector3 centerPos  = new Vector3(canvasRect.width / 2, canvasRect.height / 2, 0);

        ui_image.transform.SetPositionAndRotation(centerPos, Quaternion.identity);
        while (ui_image.transform.position.y > fadePos.y)
        {
            if (m_isFlashing == false)
            {
                ui_image.transform.SetPositionAndRotation(fadePos, Quaternion.identity);
                break;
            }

            ui_image.transform.Translate(Vector3.down * 3f);
            if (ui_image.transform.position.y <= fadePos.y)
            {
                ui_image.transform.SetPositionAndRotation(fadePos, Quaternion.identity);
            }
            yield return(0);
        }
    }
Ejemplo n.º 4
0
 void RefreshBlack(FlashClip clip)
 {
     m_isFlashing = true;
     ui_black.SetActive(clip.type == CLIP_TYPE.talk);
     m_isFlashing = false;
 }
Ejemplo n.º 5
0
 void RefreshTexture(FlashClip clip)
 {
     m_isFlashing    = true;
     ui_image.sprite = Sprite.Create(clip.texture, ui_image.sprite.textureRect, new Vector2(0.5f, 0.5f));
     m_isFlashing    = false;
 }