Esempio n. 1
0
 public void HandleDeleteKeyFrame(int idxKeyFrame)
 {
     {
         TimeWord timeWord = words[words.Count - 1];
         words.Remove(timeWord);
         Destroy(timeWord.gameObject);
     }
     {
         TimeKey temp = keys[idxKeyFrame];
         keys.Remove(temp);
         Destroy(temp.gameObject);
     }
 }
Esempio n. 2
0
    public void HandleDragKeyFrame(TimeKey key)
    {
        Vector2 localPos;

        if (scrollRect.content.sizeDelta.x > 1920)
        {
            RectTransformUtility.ScreenPointToLocalPointInRectangle(scrollRect.content, Input.mousePosition, canvas.worldCamera, out localPos);
        }
        else
        {
            RectTransformUtility.ScreenPointToLocalPointInRectangle(scrollRect.viewport, Input.mousePosition, canvas.worldCamera, out localPos);
        }


        float lastX = key.recttf.anchoredPosition.x;

        localPos.y = 0;
        float minX = 0;
        float maxX = scrollRect.content.sizeDelta.x;

        if (key.idx > 0)
        {
            minX = keys[key.idx - 1].recttf.anchoredPosition.x;
        }
        if (key.idx < keys.Count - 1)
        {
            maxX = keys[key.idx + 1].recttf.anchoredPosition.x;
        }

        localPos.x = Mathf.Clamp(localPos.x, minX, maxX);
        key.recttf.anchoredPosition = localPos;
        if (key.idx < keys.Count - 1)
        {
            TimeWord nextWord = words[key.idx + 1];
            Debug.Log(string.Format("key.idx: {0} - text: {1} - predict: {2}", key.idx, nextWord.text.text, nextWord.recttf.anchoredPosition.x + nextWord.recttf.sizeDelta.x - localPos.x));
            nextWord.recttf.sizeDelta        = new Vector2(nextWord.recttf.anchoredPosition.x + nextWord.recttf.sizeDelta.x - localPos.x, nextWord.recttf.sizeDelta.y);
            nextWord.recttf.anchoredPosition = new Vector2(localPos.x, nextWord.recttf.anchoredPosition.y);
        }


        TimeWord currentWord = words[key.idx];

        Debug.Log(string.Format("key.idx: {0} - text: {1}", key.idx, currentWord.text.text));
        currentWord.recttf.sizeDelta        = new Vector2(localPos.x - minX, currentWord.recttf.sizeDelta.y);
        currentWord.recttf.anchoredPosition = new Vector2(minX, currentWord.recttf.anchoredPosition.y);
    }
Esempio n. 3
0
    public void AddWord(int idx, float time)
    {
        TimeWord   word = null;
        GameObject go   = null;

        if (words.Count > idx && words[idx] != null && words[idx].gameObject != null)
        {
            word = words[idx];
            go   = word.gameObject;
        }
        else
        {
            go   = Instantiate(prefabTimeWord);
            word = go.GetComponent <TimeWord>();
            words.Add(word);
        }

        go.transform.SetParent(rootTextFrames);
        RectTransform recttf = go.GetComponent <RectTransform>();

        if (idx == 0)
        {
            recttf.anchoredPosition = new Vector2(0, 0);

            recttf.sizeDelta = new Vector2(time / clip.length * scrollRect.content.sizeDelta.x, rootTextFrames.sizeDelta.y);
        }

        else
        {
            RectTransform prevRectTf = words[idx - 1].GetComponent <RectTransform>();

            go.GetComponent <RectTransform>().anchoredPosition = new Vector2(prevRectTf.anchoredPosition.x + prevRectTf.sizeDelta.x, 0);

            recttf.sizeDelta = new Vector2(time / clip.length * scrollRect.content.sizeDelta.x - (prevRectTf.anchoredPosition.x + prevRectTf.sizeDelta.x), rootTextFrames.sizeDelta.y);
        }
        go.transform.localScale = new Vector3(1, 1, 1);



        word.Setup(this, currentWordLists[idx], currentSentenceColor[idx]);
    }