Как получить разрешение экрана Win ? (решено)

Программирование на Юнити.

Как получить разрешение экрана Win ? (решено)

Сообщение Левш@ 29 июл 2011, 13:42

Вопрос на засыпку :) как из скрипта получить текущее разрешение рабочего стола windows ? И возможно ли вообще?
Заранее спасибо всем ответившим, а то вот копал, копал и ничего не нарыл по теме... :-?
Последний раз редактировалось Левш@ 30 июл 2011, 16:50, всего редактировалось 1 раз.
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как получить разрешение экрана Win ?

Сообщение gnoblin 29 июл 2011, 14:17

запустить игру в оконном режиме,
запомнить Screen.currentResolution,
если надо - переключиться в фулскрин.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Как получить разрешение экрана Win ?

Сообщение Левш@ 29 июл 2011, 14:58

gnoblin спасибо, но мне нужно не запоминать, а работать с *этим* в реалтайме ( в Update () ) и в динамике./
Мне нужно разрешение не окна в редакторе, а именно рабочего стола винды (реальное, текущее, полное разрешение экрана). :(
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как получить разрешение экрана Win ?

Сообщение DbIMok 29 июл 2011, 15:52

Левш@ писал(а):Мне нужно разрешение не окна в редакторе, а именно рабочего стола винды

Screen.currentResolution
If the player is running in window mode, this returns the current resolution of the desktop.

что не так-то? сформулируй ясно, что тебе нужно.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Как получить разрешение экрана Win ?

Сообщение Левш@ 29 июл 2011, 16:27

А, сорри народ, я тут паралельно в отладке сижу, не сразу понял. ;) Всем спасибо !!!
Вроде то что надо!
Последний раз редактировалось Левш@ 29 июл 2011, 16:49, всего редактировалось 2 раз(а).
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как получить разрешение экрана Win ?

Сообщение waruiyume 29 июл 2011, 16:28

Amper писал(а):System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size.Height

Компилятор ругается (полная Ж)
The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как получить разрешение экрана Win ?

Сообщение DbIMok 29 июл 2011, 16:35

да, всего этого нет в нашем mono. Amper использовал такое в .net приложении, вот и не в курсе.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Как получить разрешение экрана Win ?

Сообщение Левш@ 29 июл 2011, 16:50

Первый вопрос решен, все работает.

Еще вопрос, можно ли и как изменять разрешение картинки билда в реалтайме ?
Вобщем нужно приравнять разрешение картинки к разрешению экрана раб стола.
Я попытался изменить Screen.width и Screen.height , получил сообщение read only... :-w
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как получить разрешение экрана Win ?

Сообщение Zaicheg 29 июл 2011, 16:51

Amper писал(а):Ну еще бы он не ругался, системные либы тоне подключили:
using System.Windows.Forms;

Ошибка на этой строке:
Код: Выделить всё
The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?


Левш@ писал(а):Еще вопрос, можно ли и как изменять разрешение картинки билда в реалтайме ?[/color] :-w

Метод Screen.SetResolution
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Как получить разрешение экрана Win ?

Сообщение Левш@ 29 июл 2011, 17:00

на это:
Синтаксис:
Используется javascript
Screen.SetResolution.width = currWidth;
Screen.SetResolution.height = currHeight;


Ругаеться...

MissingFieldException: Field 'CompilerGenerated.__GuiTextureCoord_ScreenCorector$callable0$49_16__.width' not found.
Последний раз редактировалось Левш@ 29 июл 2011, 17:02, всего редактировалось 1 раз.
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как получить разрешение экрана Win ?

Сообщение Zaicheg 29 июл 2011, 17:01

Левш@ писал(а):на это:
Синтаксис:
Используется javascript
Screen.SetResolution.width = currWidth;
Screen.SetResolution.height = currHeight

Ругаеться...

Левша, поспи чуток или погуляй. А потом в справку, по этому методу.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Как получить разрешение экрана Win ?

Сообщение Левш@ 29 июл 2011, 17:03

поспи чуток или погуляй

было бы время на то... лады, сам разберусь...
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Как получить разрешение экрана Win ?

Сообщение waruiyume 29 июл 2011, 17:03

Amper писал(а):Ну еще бы он не ругался, системные либы тоне подключили:
using System.Windows.Forms;

Пространство имен указано явно, так-что нефик :p
Синтаксис:
Используется csharp
using System.Collections;
public class Resolution : UnityEngine.MonoBehaviour
{
        void Update ()
        {
                print(@"don`t fuck my brain");
        }
}
 

Обратите внимание строки "using UnityEngine;" тута нету.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Как получить разрешение экрана Win ?

Сообщение Zaicheg 29 июл 2011, 17:11

Amper писал(а):Это системная виндовая либа, ее нужно добавить в reference прежде чем использовать, а потом и using System.Windows.Forms в классе вписать.

Добавил в референсы. На строку
using System.Windows.Forms;
Сама VS не ругается, а вот в Unity ошибка прежняя при компиляции.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Как получить разрешение экрана Win ?

Сообщение DbIMok 29 июл 2011, 17:34

дравинг не при чем. нужно скопировать \Editor\Data\Mono\lib\mono\2.0\System.Windows.Forms.dll в \Assets\Plugins
у меня
Debug.Log(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size.Width);
говорит 3320 )
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9