- Home /
Fix a GUI's position relative to a 3D object
Hello guys,
probably this is nothing new to you but for me its becoming a pain. How can I convert a 3D position of an object in the world to a 2D position in the screen so that I can place a GUI there that is always "covering" the object?
Thanks!
Answer by Paulius-Liekis · Aug 20, 2012 at 12:02 PM
Camera class contains a bunch of methods for that (World-to-Screen, Screen-to-World and similar). Just take your active camera and convert coordicates using those functions.
But my gameObject is not a camera, is another object, how can I get my "self" coordinates xyz into screen xy? Or do I need to locate my $$anonymous$$ain Camera with GetComponent() to do this?
If you have just one camera in your scene, then you can simply do Camera.main and it will return you the main camera in the scene.
It gives me this error "NullReferenceException: Object reference not set to an instance of an object AttachedWindow.GetObject2DCoordinates () (at Assets/$$anonymous$$yCustomScripts/GUI/AttachedWindow.js:14) AttachedWindow.Configure (System.String title, System.Single[] sz, UnityEngine.GameObject obj) (at Assets/$$anonymous$$yCustomScripts/GUI/AttachedWindow.js:8) OnOffHavac.SwitchParticles () (at Assets/$$anonymous$$yCustomScripts/OnOffObjects/Havac/OnOffHavac.js:33) OnOffHavac.On$$anonymous$$ouseUpAsButton () (at Assets/$$anonymous$$yCustomScripts/OnOffObjects/Havac/OnOffHavac.js:20) UnityEngine.Send$$anonymous$$ouseEvents:DoSend$$anonymous$$ouseEvents()"
For the line of code:
Camera.main.WorldToScreenPoint(_myObj.transform.position); Looks like Camera.main is returning null, but my only camera is tagged as $$anonymous$$ainCamera so it shouldn't...
Edit: Actually it isn't returning null, Camera.main return a UnityEngine.Camera.
EDIT2: The error is not related, it was _myObj that was missing. All works now.
Thanks!
Your answer
Follow this Question
Related Questions
2D Arrow pointing at 3D Position 1 Answer
GUI in 3D world space "Monitors / Screens / Displays" 1 Answer
GUI Follow RaycastHit 2 Answers
A 2D GUI in mid air, for oculus, tracking an object. 1 Answer
Change from 3D to 2D 1 Answer