Example #1
0
    public void HandleAddKeyFrame(float time)
    {
        GameObject go      = null;
        TimeKey    timekey = null;

        if (countIdx < currentWordLists.Count)
        {
            int idx = countIdx;
            if (keys.Count > idx && keys[idx] != null && keys[idx].gameObject != null)
            {
                timekey = keys[idx];
                go      = timekey.gameObject;
            }
            else
            {
                go      = Instantiate(prefabTimeKey);
                timekey = go.GetComponent <TimeKey>();
                keys.Add(timekey);
            }
            go.transform.SetParent(rootKeyFrames);
            go.GetComponent <RectTransform>().anchoredPosition = new Vector2(time / clip.length * scrollRect.content.sizeDelta.x, 0);

            timekey = go.GetComponent <TimeKey>();
            timekey.SetIdx(this, keys.Count - 1);
            AddWord(idx, time);

            Debug.Log("Add Key: " + keys.Count);
            countIdx += 1;
        }
    }
Example #2
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);
     }
 }
Example #3
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);
    }