2D talking to npc JavaScript

Hello!

What I want is this:
A npc that you can just walk past, just a guy standing still. But when you stand close to him you can press a button and it will make start a ‘chat’ with him, you can press the same button again to continue to the next line and stuff, possibly press up or down to select ‘yes’ or ‘no’.

But I am having the biggest troubles ever trying to get this to work. I can’t imagine it should be this hard to display some text above a gameobject?

I assume you have to work with a GUI? I tried putting on the
GUI.Label(Rect(10, 10, 100, 20), “Hello World!”);
I tried putting there "transform.position.x, and y;. but ofcourse the coordinate system works different than regular… which the WorldToScreenPoint is for. but I don’t know how to get that to work with my code.

Also I would like it to follower around the npc (in case I decide I want it to walk around).

so my basic question is:
how can I let an npc talk when the player is standing close to him?

here is the code:

#pragma strict

private var talking: boolean;

function OnTriggerStay(other: Collider) {
    if (other.tag == "Player") {
        talking = true;
    }
}

function OnTriggerExit(other: Collider) {
    if (other.tag == "Player") {
        talking = false;
    }
}

function OnGUI() {
    if (talking == true) {
        GUI.Label(Rect(10, 10, 100, 20), "Hello World!");
    }
    if (talking == false) {
        GUI.Label(Rect(10, 10, 100, 20), "");
    }
}

Why instead the player hits the trigger to the npc can talk you can calculate a distance between the player and the npc.

You can display your text with GUI and with gameObject its your choice, i recommend you to create a script that can handle all the conversation states that will help on your other npcs too.

see Vector2