Есть slider, который находится над передвигающимся объектом. Сделал я это так:
Vector3 ZomPos = Camera.main.WorldToScreenPoint(gameObject.transform.position);
m_RectTransform(slider).anchoredPosition = new Vector2(ZomPos.x, ZomPos.y);
Но в таком случае slider всё равно находится не ровно на объекте, а сдвигается влево, вверх, хоть и передвигается вместе с объектом. Исправил я это тем, что уменьшил ZomPos так, чтобы слайдер стоял ровно надо объектом. Но на других экранах это работает не корректно и не ровно. Как мне сделать так, чтобы slider стоял ровно над объектом при любом экране.
static public class CanvasHelper {
static public Canvas Canvas;
static public Vector2 CanvasSize;
static CanvasHelper {
UpdateCanvas();
}
static public void UpdateCanvas () {
Canvas = GameObject.Find("Canvas").GetComponent<Canvas>();
CanvasSize = canvas.gameObject.GetComponent<RectTransform>().sizeDelta;
}
static public Vector2 WorldToCanvasPosition (GameObject obj) {
Vector2 ViewPos = Camera.main.WorldToViewportPoint(obj.transform.Position);
ViewPos -= new Vector2(0.5f, 0.5f);
return new Vector2(ViewPos.x*CanvasSize.x, ViewPos.y*CanvasSize.y);
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости