Setting the position of a RectTransform
foreach (Touch t in Input.touches) { // check all the touches
if (t.position.x >= Screen.width/2) { // if it's on the right half of the screen
if (t.phase == TouchPhase.Began) { // if has just began pressing
aimCenter = t.position; // set position
Vector2 pos = new Vector2 (aimCenter.x / (float)Screen.width,aimCenter.y / (float)Screen.height); // calculate anchor position
actionHandler.SetPosition (pos.x - .08f, pos.y - .14f, pos.x + .08f, pos.y + .14f); // apply anchor position (the function just sets anchorMax and anchorMin, then sets offsets to 0
actionHandler.gameObject.SetActive (true); // make visible
}
}
if (canMove && t.position.x < Screen.width/2) { // same as above but for the left half of the screen
if (t.phase == TouchPhase.Began) {
movCenter = t.position;
Vector2 pos = new Vector2 (t.position.x / Screen.width, t.position.y / Screen.height);
directionHandler.SetPosition (pos.x - .08f, pos.y - .14f, pos.x + .08f, pos.y + .14f);
directionHandler.gameObject.SetActive (true);
}
}
}
The final goal of the code is to display 2 sprites at the location the finger starts the touch, and stay there until the finger is on the screen. The code works the first time, no problem, but when I try to touch the screen again in the sprite is still at the same exact position, or better: it is DRAWN at the same "old" position, while from the editor, i can see the actual position of the anchors is the right one
How do i solve this? I also tried using RectTransform.sizeDelta
and setting the position via .localPosition
but i get the same issue
Your answer
Follow this Question
Related Questions
Help! Animating hogs my Pos Y. 0 Answers
[Solved] Setting position of rectTransform through anchor presets in code 3 Answers
Rescale Meshes To Fit Within Rect 0 Answers
Why Lerping Rect Transform position, results in strange behaviour? 0 Answers
RedctTransform messed up after moving UI components around 0 Answers