示例#1
0
    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>();
    }
示例#2
0
    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;
        }
    }