- Home /
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), "");
}
}
Answer by Stormizin · Sep 15, 2014 at 08:46 PM
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
How would that work? I dind't know it was possible to display text using gameObject. your answer makes sense but I have absolutely NO idea how I would code this. would I create an empty gameobject called 'Conversation Handler' or something, and then add in there all the npcs with each their own talks and questions?