Need some help with textfields

Hi guys,

So I’m making the introduction to my game, and I wanted it to be letter by letter, so I’m using this script:

using UnityEngine;
using System.Collections;

public class mainText : MonoBehaviour
{
    public float letterPause = 0.05f;
    public AudioClip sound;
    public GUIStyle font;
    string message;
    string text;
   
    void Start ()
    {
        message = "During the 18th century, waves of vicious thieves washed over the southern" +
            " part of the land now known as the Netherlands, and the adjacent Belgium and German" +
            " Rhineland. \n \nGroups of men and women of all kinds set out to rob rich farmers," +
            " civillians, churches, and monasteries. \n \nThese godless robbers were commonly" +
            " associated with the devil himself.";
        text = "";
        StartCoroutine(TypeText());
    }
   
    IEnumerator TypeText ()
    {
        foreach (char letter in message.ToCharArray())
        {
            text += letter;
            if (sound)
                audio.PlayOneShot (sound);
            yield return 0;
            yield return new WaitForSeconds (letterPause);
        }
    }
   
    void OnGUI()
    {
        GUI.Box(new Rect(Screen.width / 2 - 320, Screen.height / 2 - 240, 640, 480), text, font);
    }
   
    void Update()
    {
        if(Input.GetKeyDown (KeyCode.Return))
        {
            StopAllCoroutines();
            text = message;
        }
    }
}

But does anyone know how I can create a button that when clicked on, shows the next part of the text?

do you mean a GUI Button or a Input Button ?

A GUI button, a visible button that you have to click on in order to show the next part of the message

if (GUI.Button(new Rect(Screen.width/2+320-80, Screen.height/2-240, 80, 30), "next")) {
    StopAllCoroutines();
    text = message;
}

add this to the OnGUI() method