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); } }
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); }
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]); }