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