Caret position not properly updating.

I’m trying to make a CLI for some of the terminals in my game and I’ve run into what is either a bug or a weird side effect of what I’m doing. Maybe it’d be best to use some images to show my problem.



The code I’m using is some simple test code I whipped up, it’s only a few lines so it shouldn’t be doing anything this weird.

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class TerminalController : MonoBehaviour {

    public InputField inputField;
    public Text text;

    public void AddInput () {
        text.text = text.text + "\n" + inputField.text;
        inputField.text = "";
        inputField.Select ();
        inputField.ActivateInputField ();
    }

    // Use this for initialization
    void Start () {
        inputField.Select ();
        inputField.ActivateInputField ();
    }

    // Update is called once per frame
    void Update () {
  
    }
}

Anyone? Is there even a way to get manual control over the caret’s vertical position?

Look at InputField.cs source code. Maybe it can help to you?