Вторник, 16 Апреля 2024, 15:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Размер текстуры отображаемой на экране (нужна помощь)
Размер текстуры отображаемой на экране
mrResidentДата: Суббота, 20 Сентября 2014, 01:56 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Имеется исходная текстура, допустим 720 х 1280 пикселей. Как узнать какой настоящий размер текстуры на момент отображения на экране? Поясню, экраны могут быть разного разрешения, поэтому в зависимости от разрешения текстура может масштабироваться, так вот как узнать какой размер у текстуры при отображении на экранах с разными разрешениями экранов?

P.S. Текстура отображается в 2d плоскости


Укроп головного мозга - болезнь тяжелая, но излечимая!
LertmindДата: Суббота, 20 Сентября 2014, 09:14 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Как вариант: преобразовать точки по углам текстуры в координаты экрана, потом уже легко определить ширину и высоту. Camera.WorldToScreenPoint в помощь.

Добавлено (20.09.2014, 09:14)
---------------------------------------------
Скрипт, который работает для спрайта:
Код
using UnityEngine;

public class Test : MonoBehaviour
{
     void Start()
     {
         var sr = GetComponent<SpriteRenderer>();
         // Определяем точки в мировых координатах
         Bounds bounds = sr.bounds;
         float top = transform.position.y + bounds.extents.y;
         float right = transform.position.x + bounds.extents.x;
         float bottom = transform.position.y - bounds.extents.y;
         float left = transform.position.x - bounds.extents.x;
         // Размер в пикселях
         Vector3 size = Camera.main.WorldToScreenPoint(new Vector3(right, top, 0))
             - Camera.main.WorldToScreenPoint(new Vector3(left, bottom, 0));
         // Округляем до целых
         size.x = Mathf.Round(size.x); // Ширина
         size.y = Mathf.Round(size.y); // Высота
         Debug.Log(size);
     }
}


Сообщение отредактировал Lertmind - Суббота, 20 Сентября 2014, 09:15
mrResidentДата: Суббота, 20 Сентября 2014, 15:46 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Lertmind, просто несказанное тебе спасибо! Вчера ночью пытался эту задачку решить, ходил вокруг да около, а решение оказывается таким тривиальным было ))) Так что лови +

Укроп головного мозга - болезнь тяжелая, но излечимая!

Сообщение отредактировал mrResident - Суббота, 20 Сентября 2014, 15:53
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Размер текстуры отображаемой на экране (нужна помощь)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг