- Home /
The next problem with gui.
Ok so heres my code from this section:
var Cam : Camera; public var distanceaway;
function Start() { distanceaway = 0; }
function OnGUI() { GUI.Label (Rect (10, 20, 100, 20), "distance: "+ distanceaway); }
function Update() { var ray = Cam.ScreenPointToRay (Input.mousePosition); var hit : RaycastHit; if (Physics.Raycast (ray, hit, 1000)) { distanceaway = hit.distance;
} }
When i run it occasionally it will display the distance but most of the time nothing is displayed after "distance: " just every now and then when scanning the environment itll flash up the distance. Any one got any ideas?
Answer by Alec-Slayden · Feb 17, 2011 at 12:17 PM
You currently have the ray length set to 1000 units. "Physics.Raycast (ray, hit, 1000)"
Objects without colliders, and objects beyond this distance of 1000 units will not register a collision, and therefore not report a distance. Hope that helps!
EDIT:
After checking out the script in game it looks like it was getting confused casting the number into string. I had the same flashing problem, but changing the GUI call to this:
GUI.Label (Rect (10, 20, 1000, 100), "distance: "+ distanceaway.ToString());
Seems to have fixed the problem, ensuring that distanceaway was interpreted as a string.
the distances involved are all less than 1000. but thanks for the suggestion tho. I appreciate you taking the time to read my problem. just ran it and it flash up at summat like 42.98 and then at like 267.32. lol
You're welcome. I think changing the distanceaway to a string through operation will help
Your answer
Follow this Question
Related Questions
Create GUIText from Javascript 3 Answers
Using AutoType script on GUI.Label? 1 Answer
How do I change the text of a gui image text 1 Answer
Distance on fps 3 Answers