@Zimaell

Как заменить Image на SpriteRenderer с теми же размерами?

Делал делал игрушку, все префабы с SpriteRenderer, все уже выстроил и захотел добавить фон, сделал панель и задал ей картинку, как оказалась она поверх всех префабов, посоветовали переделать префабы и заменить все SpriteRenderer на Image, тогда да префабы уже поверх фона, только все поплыло и нужно переделывать...
Поэтому решил сделать фон SpriteRenderer дабы все остальное не переделывать, правда растянуть его так же как панель не получается, посоветуйте что можно в данном случае сделать?
  • Вопрос задан
  • 19 просмотров
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
Сделать в канвасе не оверлей, а рендер в камеру и задать подходящую глубину.
Ответ написан
ShockWave2048
@ShockWave2048
imposter
А зачем точно? Растяни примерно чтобы не было дырок с запасом и всё.

Точно сложно.
Надо вычислить расстояние по высоте и ширине камеры. И отмасштабировать по нему фоновый объект, например куб у которого известен размер по X, Y, Z = 1.
Примерно так: (не тестил)
Vector3 topRight = Camera.main.ViewportToWorldPoint(new Vector3(1, 1, camera.nearClipPlane)); // верх правый угол
Vector3 topLeft = Camera.main.ViewportToWorldPoint(new Vector3(0, 1, camera.nearClipPlane)); // верх левый угол
Vector3 bottomLeft = camera.ViewportToWorldPoint(new Vector3(0, 0, camera.nearClipPlane)); // верх левый угол
float widthX = Vector3.Distance(topLeft, topRight);
float heightY = Vector3.Distance(bottomLeft, topLeft);
cubeTransform.localScale = new Vector3(widthX, heightY, 1); // Если камера сверху, поменять heightY и 1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы