public void DisplayLine(string displayText) { GameObject line = Instantiate(LinePrefab); line.transform.SetParent(_lineParent.transform, false); line.transform.localPosition = _currLinePosition; Text text = line.GetComponent <Text>(); text.text = displayText; ContentSizeFitter contentSizeFitter = line.GetComponent <ContentSizeFitter>(); contentSizeFitter.SetLayoutVertical(); _currLinePosition.y -= Mathf.Max(MinimumLineDistance, line.GetComponent <RectTransform>().rect.height + MinimumLineBuffer); RectTransform rectTransform = transform.GetComponent <RectTransform>(); if (_currLinePosition.y < (_lineParent.transform.localPosition.y - rectTransform.rect.height)) { Vector3 feedPosition = _lineParent.transform.localPosition; feedPosition.y = Mathf.Abs(_currLinePosition.y) - rectTransform.rect.height; _lineParent.transform.localPosition = feedPosition; } _currPerCharacterWriter = line.GetComponent <PerCharacterWriter>(); }
public void DisplayLine(string displayText, Side side) { displayText = displayText.Trim(new char[] { '\n', '\r' }); GameObject linePrefab = (side == Side.Left ? LineLeftPrefab : LineRightPrefab); GameObject line = Instantiate(linePrefab, LineParent.transform, false); if (LineParent.transform.childCount > 1) { _currLineY -= MinimumLineBuffer; } var position = line.GetComponent <RectTransform>().anchoredPosition; position.y = _currLineY; line.GetComponent <RectTransform>().anchoredPosition = position; Text text = line.GetComponent <Text>(); text.text = displayText; ContentSizeFitter contentSizeFitter = line.GetComponent <ContentSizeFitter>(); contentSizeFitter.SetLayoutVertical(); _currLineY -= Mathf.Max(MinimumLineDistance, line.GetComponent <RectTransform>().rect.height); var feedPosition = LineParent.GetComponent <RectTransform>().anchoredPosition; feedPosition.y = Mathf.Abs(_currLineY); LineParent.GetComponent <RectTransform>().anchoredPosition = feedPosition; _currPerCharacterWriter = line.GetComponent <PerCharacterWriter>(); if (side == Side.Right) { _currPerCharacterWriter.Instant = true; } }