- Home /
Duplicate Question
GUI label on raycast?
Hello,
I found this script for raycasting to see if the player is within a certain distance from an object (essentially a door) but want to add a GUI label popup to prompt the player when wanting to open the door. I'm not sure what I should use for the 'if' statement to check whether it's within range.
using UnityEngine;
using System.Collections;
public class New_Level_Door : MonoBehaviour {
void Update()
{
if(Input.GetKeyDown(KeyCode.E) && CheckForDoor())
{
Application.LoadLevel("MainMenu");
}
}
bool CheckForDoor()
{
RaycastHit hit;
if(Physics.Raycast(transform.position, transform.forward, out hit, 2))
{
Debug.LogWarning("Press E to open the door");
if(hit.transform.tag == "LevelEnd")
{
return true;
}
}
return false;
}
void OnGUI()
{
//if(RaycastHit hit = true))
{
GUI.Label (new Rect(5,0,100,20 ),"Press 'E' to open the door!");
}
}
}
Thanks for your time!
look at the doc for GUILabel. Search on here for 100s quetions about GUI and GUILabel
Hello there! I tried something out with raycast, and I found a valid solution that worked for me! It may be a little late for this answer, but I hope it can serve you, like it served me! I have a script wich scans object's tags, so it will only print out a specific tag when it hits a scanned object! Here's the code:
void OnGUI()
{
Ray ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);
Debug.DrawRay(ray.origin, ray.direction * range, Color.cyan);
RaycastHit hit;
if(Physics.Raycast(ray, out hit) == true && hit.distance <= range)
{
Debug.DrawRay(ray.origin, ray.direction * hit.distance, Color.red);
Debug.Log ("Hitting a " + hit.transform.gameObject.tag);
GUI.Label(new Rect(10, 10, 100, 20), "" + hit.transform.gameObject.tag);
}
}
Now what this will do is that it will print the name of the tag on the object and print it somewhere on the screen! I'm unsure if this is what you wanted, but this worked fine for me! You may have to modify the text's coordinates and put a few if statements, depending on what door is opening. Good luck mate! I hope I helped! :)
Follow this Question
Related Questions
Multiplayer game GUI problem 0 Answers
GUI.button and onClick Terrain 2 Answers
script is not working Using raycast show PopUp on click 0 Answers
Score display not working 1 Answer
How to change how meany decimals are in a GUI sound slider 2 Answers