- Home /
Moving an NGUI component to overlay game object.
I have little NGUI component I want to move (Around the Centre anchor) to be on top of a "selected" game object. But I can't seem to get the actual transformation correct as it ends up being all over the place.
What is wrong with this code?
public void Display(Vector3 pos)
{
// Enable select
selectUI.SetActive(true);
// Get screen location of node
Vector3 screenPos = Camera.main.WorldToScreenPoint(pos);
// Move to node
selectUI.transform.position = screenPos + new Vector3(Screen.width / 2, Screen.height/2, 0);
}
Answer by MorphingDragon · Jul 06, 2013 at 03:36 PM
For those who are interested NGUI's internal points don't seem to be in a different space that what's in the editor. I fixed it by changing it the code to this:
public void Display(Vector3 pos)
{
// Enable select
selectUI.SetActive(true);
// Get screen location of node
Vector2 screenPos = Camera.main.WorldToScreenPoint(pos) ;
// Move to node
selectUI.transform.position = camera.ScreenToWorldPoint(screenPos);
}
Just to clarify, the first camera (Camera.main) is 3D camera, the second is a UICamera.
Your answer
![](https://koobas.hobune.stream/wayback/20220613105606im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Converting world coordinates to screen coordinates 1 Answer
NGUI/GUI button emulating Keyboard letter press 1 Answer
Wrong WorldToScreenPoint converting (not inverted y) 0 Answers
How to change the arrpearance of the mobile keyboard 1 Answer
How to implement Platoevolved's In app billing with NGUI? 0 Answers