Instantiating UI element at mouse position on click
Everything works fine except for the position of the element. The position is WAY off where I click. In fact, it's about 100 times X & Y pos; I know that because I literally tried dividing the position by 100 and it at least put it on my screen, but still offset from where the cursor was.
static public int points; //Total game points
public Vector3 mousePos; //To store mouse position
public Transform incrementElement; //The UI element I'm instantiating
public Transform parentObj; //The UI Canvas
public void Points(int increment) //Called OnClick()
{
mousePos = Camera.main.WorldToScreenPoint(Input.mousePosition); //Gets mouse position
points += increment; //increases points variable by increment
var NewIncrementElement = Instantiate(incrementElement,
transform.position,
Quaternion.identity)
as RectTransform; //instantiates the UI element
NewIncrementElement.anchoredPosition = (mousePos); //moves element to mouse position.
//I tried instantiating at mousePos too
NewIncrementElement.SetParent(parentObj); //sets the element to be a child
// of the Canvas, this is necessary, right?
}
I thought maybe it had something to do with the fact that the camera is tiny and the canvas is colossal, but when I zoom out to see my element, even the Canvas is small on screen. My scene is centered around 0,0,0, and the element is at 34k. I'm working with 2D, BTW, that's probably relevant here.
Note: I'm making a clicker, like Cookie Clicker. I want a little +1 to appear when I click. That's what I'm trying to do here. If there's a better way you can think of, let me know. I imagined it would be possible to just draw text, without the use of another object, but I couldn't find anything.
Answer by Hydropulse17 · Sep 04, 2016 at 05:12 AM
So my issue was that I was converting (Input.mousePosition) to screen space. I don't quite understand why, but assigning mousePos to the raw output of Input.mousePosition worked.
Thanks for that! I'm not quite sure why that seems to work, but the screen conversion didn't... I might look into this a little more. Appreciate the Help!
Your answer
Follow this Question
Related Questions
UI Text sometimes renders when instantiated, yet sometimes does not. 1 Answer
Help! with the Message text 0 Answers
Updated with UI text element not correct (same frame) 0 Answers
UI Canvas Anchor points are stuck in the bottom left corner and disabled when in overlay mode. 1 Answer
Placing buildings RTS styled game 0 Answers