Occasionally, when the user touches the screen, I want to show a message just above the point they touch (so that it’s not hidden by their finger). I can get the position on screen easily enough, and it’s straightforward to just call
text.rectTransform.position = position where
text is a
UnityEngine.UI.Text object and
position is the position they touched (plus some value), and this work fine. However when the position is close to the edges of the screen, part of the
Text is outside the canvas.
I’d like to somehow snap the Text to a position so that it will always be fully visible. I’ve tried testing the width of the
Text element with the position and the screen width, but it seems that when the screen size changes, the width of the
Text is always given in “reference pixels”, while the width of the screen scales. This would make that calculation very complicated.
Does anyone know if there’s a better way to make the check and adjustment, to ensure that the text is always fully visible?