- Home /
How to Make a Message Appear on Screen?
I have a test NPC that I want to display a message when you press "E" within the trigger. I got the trigger to properly function and same with the key press but the message won't display.
This is what I have:
var playerObject : GameObject;
var message : String = "I am an NPC.";
var displayTime : float = 3;
var displayMessage : boolean = false;
function OnTriggerStay(other : Collider)
{
if(displayTime == 0)
{
displayMessage = false;
}
if(Input.GetKeyDown(KeyCode.E))
{
displayMessage = true;
}
}
function OnGui()
{
if (displayMessage)
{
GUI.Label(new Rect(Screen.width / 2, Screen.height / 2, 200f, 200f), message);
}
}
If anyone could help that'd be great :D
Answer by robertbu · Dec 11, 2013 at 09:38 PM
The function is 'OnGUI' not 'OnGui'.
I think this is what you are looking for:
#pragma strict
var playerObject : GameObject;
var message : String = "I am an NPC.";
var displayTime : float = 3;
var display$$anonymous$$essage : boolean = false;
function Update() {
displayTime -= Time.deltaTime;
if (displayTime <= 0.0) {
display$$anonymous$$essage = false;
}
}
function OnTriggerStay(other : Collider) {
if(other.collider.gameObject == playerObject && Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.E)) {
display$$anonymous$$essage = true;
displayTime = 3.0;
}
}
function OnGUI () {
if (display$$anonymous$$essage) {
GUI.Label(new Rect(Screen.width / 2, Screen.height / 2, 200f, 200f), message);
}
}
Oh, my mistake. Also is there a way to resize it and change it's color?
That's a separate question. But the answer is using a GUIStyle http://docs.unity3d.com/Documentation/ScriptReference/GUI.Label.html
Your answer
Follow this Question
Related Questions
(4.6 UI) How to set up a window with x buttons, with a scroll bar? 1 Answer
Procedurally generated uGUI elements render under world space objects 1 Answer
Where do I find UI Text? 3 Answers
How do I keep an ui element in side of the canvas when scaling? 1 Answer
Can't destroy an ui element 2 Answers