Как узнать высоту между якорями, если они сделаны во весь блок, с авто-подстройкой, при смене разрешения.
Так-как RectTransform.sizeDelta
возвращает {0,0}
когда якоря на весь блок, то при расчетах ниже, точки появляются в центре, за место того, чтобы появиться там, где указан TargetPosition
.
Чем можно заменить такой код:
Vector3 CorrectPosition = TargetPosition + OffSet;
Vector2 vp2 = MapCamera.WorldToViewportPoint(CorrectPosition);
Vector2 position = new Vector2(
(vp2.x * Rect.sizeDelta.x) - (Rect.sizeDelta.x * 0.5f),
(vp2.y * Rect.sizeDelta.y) - (Rect.sizeDelta.y * 0.5f)
);
if (OffScreen) {
position.x = Mathf.Clamp(position.x, -((Rect.sizeDelta.x * 0.5f) - BorderOffScreen), ((Rect.sizeDelta.x * 0.5f) - BorderOffScreen));
position.y = Mathf.Clamp(position.y, -((RectRoot.sizeDelta.y * 0.5f) - BorderOffScreen), ((Rect.sizeDelta.y * 0.5f) - BorderOffScreen));
}
float size = Size;
if (position.x == (Rect.sizeDelta.x * 0.5f) - BorderOffScreen || position.y == (Rect.sizeDelta.y * 0.5f) - BorderOffScreen ||
position.x == -(Rect.sizeDelta.x * 0.5f) - BorderOffScreen || -position.y == (Rect.sizeDelta.y * 0.5f) - BorderOffScreen) {
size = OffScreenSize;
} else {
size = Size;
}
Чтобы правильно считались позиции?
Никак не могу найти решение, это было последнее, что я написал и пытался исправить.
ну попробуй так
RectTransform rt = GetComponent<RectTransform>();
RectTransform parent = (RectTransform)rt.parent;
Vector2 parentSize = parent.rect.size;
Vector2 d = rt.anchorMax - rt.anchorMin;
float width = d.x * parentSize.x;
float heigh = d.y * parentSize.y;
Debug.Log("width: " + width.ToString());
Debug.Log("height: " + heigh.ToString());
использовал размеры родителя, потому что якорьки напрямую зависят от него
Вопрос решен через добавление спрайта и слоя к элементу, а после чего, просто скрываем слой на основной камере и показываем на второй камере.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Проект отлично работалПосле того, как удалил DevExpress 11 и поставил версию 13
Вы можете столкнуться с тем, что при попытке добавить к своему проекту в Visual Studio модель ADONET EDM, вы ее не найдете в списке доступных элементов
Всем доброго времени суток! Делаю на unity игру, решил использовать функцию Physics2DOverlapCapsuleAll, так как она лучше всего подходит для моих целей
В общем код Xaml на элемент ListView